{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# A Comprehensive Introduction of Medusa\n",
    "Sept, 2023 | 45 min | Yuhong Li"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\" # define GPU id, remove if you want to use all GPUs available\n",
    "import torch\n",
    "from contextlib import contextmanager\n",
    "import numpy as np\n",
    "from medusa.model.medusa_model import MedusaModel\n",
    "from medusa.model.kv_cache import *\n",
    "from medusa.model.utils import *\n",
    "from medusa.model.medusa_choices import *\n",
    "from copy import deepcopy\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How LLM inference?\n",
    "\n",
    "In this section, we will illustrate LLM inference with KV cache mechanism.\n",
    "\n",
    "The Key-Value (KV) cache mechanism serves as a rapid-access storage during inference. By retaining the model's intermediate KV features from previous inferences in this cache, computation time can be substantially reduced.\n",
    "\n",
    "\n",
    "Consider an example where the incoming input token has a shape of `[1, 1]`, denoting a batch_size of 1 and a sequence_length of 1. If the model has prior intermediate KV features stored in the cache, the inference will proceed as follows:\n",
    "\n",
    "\n",
    "1. **Embedding Mapping**: The model transforms the input token into an embedding vector, resulting in a shape of `[1, 1, hidden_size]`.\n",
    "\n",
    "2. **Forward through FFN**: This embedded vector is then passed through the Feed Forward Network (FFN) module, yielding an output with the same shape: `[1, 1, hidden_size]`.\n",
    "\n",
    "3. **Attention Mechanism**: \n",
    "\n",
    "    * The query vector for the current token is reshaped and transformed from `[1, 1, hidden_size]` to `[1, 1, num_heads, head_dim]` to `[1, num_heads, 1, head_dim]`.\n",
    "    * The cached intermediate KV vectors from previous inferences have the shape `[1, num_heads, prev_kv_seq_len, head_dim]`.\n",
    "    * Current KV vectors are concatenated with these cached KV vectors, resulting in a new shape of `[1, num_heads, prev_kv_seq_len + 1, head_dim]`.\n",
    "    * Hence, the QK matrix's shape is `[1, num_heads, 1, head_dim] x [1, num_heads, head_dim, prev_kv_seq_len + 1]` -> `[1, num_heads, 1, prev_kv_seq_len + 1]`.\n",
    "    * The (QK)V matrix's shape is `[1, num_heads, 1, prev_kv_seq_len + 1] x [1, num_heads, prev_kv_seq_len + 1, head_dim]` -> `[1, num_heads, 1, head_dim]`.\n",
    "    * The output is transformed and reshaped to `[1, 1, hidden_size]`.\n",
    "\n",
    "Without the KV cache mechanism, the inference will proceed the **whole sequence** each time, resulting in significantly larger QK matrix and slower FFN computation.\n",
    "\n",
    "If you want to know more about KV cache, please refer to the awesome [blog](https://www.dipkumar.dev/becoming-the-unbeatable/posts/gpt-kvcache/).\n",
    "\n",
    "Let's try an example with KV cache inference:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Overriding medusa_num_heads as: 4\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f4d7c1aaf692402f959920bc9ccd8593",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Loading checkpoint shards:   0%|          | 0/2 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "You are using the default legacy behaviour of the <class 'transformers.models.llama.tokenization_llama.LlamaTokenizer'>. If you see this, DO NOT PANIC! This is expected, and simply means that the `legacy` (previous) behavior will be used so nothing changes for you. If you want to use the new behaviour, set `legacy=False`. This should only be set if you understand what it means, and thouroughly read the reason why this was added as explained in https://github.com/huggingface/transformers/pull/24565\n"
     ]
    }
   ],
   "source": [
    "model_name = 'FasterDecoding/medusa-vicuna-7b-v1.3'\n",
    "model = MedusaModel.from_pretrained(\n",
    "    model_name,\n",
    "    medusa_num_heads = 4,\n",
    "    torch_dtype=torch.float16,\n",
    "    low_cpu_mem_usage=True,\n",
    "    device_map=\"auto\"\n",
    ")\n",
    "tokenizer = model.get_tokenizer()\n",
    "\n",
    "medusa_choices = mc_sim_7b_63\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initialize the kv_cache"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "past_key_values, past_key_values_data, current_length_data = initialize_past_key_values(model.base_model)\n",
    "model.past_key_values = past_key_values\n",
    "model.past_key_values_data = past_key_values_data\n",
    "model.current_length_data = current_length_data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Set the prompt\n",
    "\n",
    "The prompt is as follow:\n",
    "\n",
    "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: Hi, could you share a tale about a charming llama that grows Medusa-like hair and starts its own coffee shop? ASSISTANT:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: Hi, could you share a tale about a charming llama that grows Medusa-like hair and starts its own coffee shop? ASSISTANT:\n",
      "Input token length: 66\n",
      "Init KV cache shape for attention modules: (1, 32, 0, 128) (1, 32, 0, 128)\n"
     ]
    }
   ],
   "source": [
    "model.current_length_data.zero_() # this is for rerun\n",
    "prompt = \"A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: Hi, could you share a tale about a charming llama that grows Medusa-like hair and starts its own coffee shop? ASSISTANT:\"\n",
    "print(prompt)\n",
    "input_ids = tokenizer([prompt]).input_ids\n",
    "input_len = len(input_ids[0])\n",
    "print('Input token length:', len(input_ids[0]))\n",
    "print('Init KV cache shape for attention modules:', model.past_key_values[0][0].shape, model.past_key_values[0][1].shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### First inference for all the prompt tokens\n",
    "\n",
    "You can see the input is the prompt which contains 66 tokens. The output is the logits (`batchsize x seq_len x class`) of the predicted next token for each token in the prompt."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "output shape: torch.Size([1, 66, 32000])\n",
      "KV cache shape for attention modules after first inference: (1, 32, 66, 128) (1, 32, 66, 128)\n",
      "First prediction: ['Once']\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    model.current_length_data.zero_() # this is for rerun\n",
    "    output = model.base_model(torch.as_tensor(input_ids).cuda(), past_key_values=model.past_key_values,)\n",
    "    print('output shape:', output.logits.shape)\n",
    "    pred = output.logits.argmax(-1)\n",
    "    input_ids[0] = input_ids[0] + pred[0, -1:].tolist()\n",
    "    print('KV cache shape for attention modules after first inference:', model.past_key_values[0][0].shape, model.past_key_values[0][1].shape)\n",
    "    print('First prediction:', tokenizer.batch_decode(pred[..., -1:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Second inference using the kv_cache\n",
    "You can see we utilize the KV cache to streamline our computations. Instead of feeding the entire prompt with new tokens to the model again, we only input the token that was predicted in the previous inference step. Notice this time the output `seq_len = 1`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "output shape: torch.Size([1, 1, 32000])\n",
      "KV cache shape for attention modules after second inference: (1, 32, 67, 128) (1, 32, 67, 128)\n",
      "Second prediction: ['upon']\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    output = model.base_model(pred[..., -1:], past_key_values=model.past_key_values, use_cache=True) # note we only need to put last token in the input_ids\n",
    "    print('output shape:', output.logits.shape)\n",
    "    pred = output.logits.argmax(-1)\n",
    "    input_ids[0] = input_ids[0] + pred[0, -1:].tolist()\n",
    "    print('KV cache shape for attention modules after second inference:', model.past_key_values[0][0].shape, model.past_key_values[0][1].shape)\n",
    "    print('Second prediction:', tokenizer.batch_decode(pred[..., -1:]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['a']\n",
      "['time']\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[',']\n",
      "['in']\n",
      "['a']\n",
      "['small']\n",
      "['village']\n",
      "['nest']\n",
      "['led']\n",
      "['in']\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    for _ in range(10):\n",
    "        output = model.base_model(pred[..., -1:], past_key_values=model.past_key_values, use_cache=True)\n",
    "        pred = output.logits.argmax(-1)\n",
    "        # pred_topk = output.logits.topk(10, dim = -1).indices[0]\n",
    "        input_ids[0] = input_ids[0] + pred[0, -1:].tolist()\n",
    "        print(tokenizer.batch_decode(pred[..., -1:]))\n",
    "        # print(tokenizer.batch_decode(pred_topk), 'topk:', pred_topk)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Once upon a time, in a small village nestled in\n"
     ]
    }
   ],
   "source": [
    "print(tokenizer.decode(input_ids[0][-12:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reaching Equilibrium in Model Output\n",
    "\n",
    "A central concept, especially when we discuss Medusa verification, is the equilibrium state of a model's output.\n",
    "\n",
    "Think about a sequence produced by the model. This sequence is composed of two parts:\n",
    "\n",
    "* **Prompt**: This is the initial input given to the model.\n",
    "\n",
    "* **Predictions**: These are the tokens that the model generates in response to the prompt.\n",
    "\n",
    "Merging these segments gives us the entire sequence, `concat([prompt, preds])`. For clarity, let's denote the `prompt` length as `n` and the `preds` length as `k`.\n",
    "\n",
    "One notable characteristic is that if this combined sequence is re-inputted into the model, it reproduces the same predictions. It implies that the pred section of the combined sequence has attained an equilibrium due to the model's generation capacity.\n",
    "\n",
    "For better understanding, here's a visual representation:\n",
    "\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>input (<code>prompt</code>)</th>\n",
    "            <td><code>...</code></td>\n",
    "            <td>'shop'</td>\n",
    "            <td>'?'</td>\n",
    "            <td>'A'</td>\n",
    "            <td>'SS'</td>\n",
    "            <td>'IST'</td>\n",
    "            <td>'ANT'</td>\n",
    "            <td>':'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>model output</th>\n",
    "            <td><code>...</code></td>\n",
    "            <td>'?'<br>&#9989</td>\n",
    "            <td>'\\n'<br>&#x274C</td>\n",
    "            <td>'story'<br>&#x274C</td>\n",
    "            <td>'S'<br>&#x274C</td>\n",
    "            <td>'\\n'<br>&#x274C</td>\n",
    "            <td>'I'<br>&#x274C</td>\n",
    "            <td><code>...</code></td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "Cont.\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>input (<code>preds</code>)</th>\n",
    "            <td><code>...</code></td>\n",
    "            <td>'Once'</td>\n",
    "            <td>'upon'</td>\n",
    "            <td>'a'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>','</td>\n",
    "            <td>'in'</td>\n",
    "            <td>'a'</td>\n",
    "            <td>'small'</td>\n",
    "            <td>'village'</td>\n",
    "            <td>'nest'</td>\n",
    "            <td>'led'</td>\n",
    "            <td>'in'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>model output</th>\n",
    "            <td> 'Once' <br>&#9989</td>\n",
    "            <td>'upon' <br>&#9989</td>\n",
    "            <td>'a' <br>&#9989</td>\n",
    "            <td>'time' <br>&#9989</td>\n",
    "            <td>',' <br>&#9989</td>\n",
    "            <td>'in' <br>&#9989</td>\n",
    "            <td>'a' <br>&#9989</td>\n",
    "            <td>'small' <br>&#9989</td>\n",
    "            <td>'village' <br>&#9989</td>\n",
    "            <td>'nest' <br>&#9989</td>\n",
    "            <td>'led' <br>&#9989</td>\n",
    "            <td>'in' <br>&#9989</td>\n",
    "            <td>'the' </td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "\n",
    "In this example, the top row displays the input `concat([prompt, preds])`. The second row represents the model's output tokens - essentially shifted input tokens, with the end-result being the upcoming token. While the prompt deviates since it isn't a direct result of the model's generation, the output tokens spanning from `[n - 1: n - 1 + k]` align perfectly with the input tokens from `[n: n + k]`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['coffee', 'shop', '?', 'A', 'SS', 'IST', 'ANT', ':', 'Once', 'upon', 'a', 'time', ',', 'in', 'a', 'small', 'village', 'nest', 'led', 'in']\n",
      "['shop', '?', '\\n', 'story', 'S', '\\n', 'I', 'Once', 'upon', 'a', 'time', ',', 'in', 'a', 'small', 'village', 'nest', 'led', 'in', 'the']\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    output = model.base_model(torch.as_tensor(input_ids).cuda()).logits\n",
    "    pred = output.argmax(-1)\n",
    "    print(tokenizer.batch_decode(input_ids[0][-20:]))\n",
    "    print(tokenizer.batch_decode(pred[0,-20:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Disturbing the Equilibrium State with a Minor Change\n",
    "\n",
    "To emphasize the sensitivity of the equilibrium state, let's consider another example.\n",
    "\n",
    "\n",
    "From our prior illustration, the sequence \"**Once upon a time, in a small village nestled in**\" had reached an equilibrium state, where feeding this sequence back into the model yielded the same predictions.\n",
    "\n",
    "But what happens when we introduce a minor change to this equilibrium?\n",
    "\n",
    "For the sake of this demonstration, we'll swap the word '**village**' with '**mountain**'. Both of these terms, from grammatical and semantic perspectives, fit well within the tale. Yet, as we'll see, the model's subsequent outputs following the word 'mountain' deviate drastically from our original sequence.\n",
    "\n",
    "Here's the visual representation:\n",
    "\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>input</th>\n",
    "            <td><code>...</code></td>\n",
    "            <td>':'</td>\n",
    "            <td>'Once'</td>\n",
    "            <td>'upon'</td>\n",
    "            <td>'a'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>','</td>\n",
    "            <td>'in'</td>\n",
    "            <td>'a'</td>\n",
    "            <td>'small'</td>\n",
    "            <td>'mountain'&#128221</td>\n",
    "            <td>'nest'</td>\n",
    "            <td>'led'</td>\n",
    "            <td>'in'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>model output</th>\n",
    "            <td><code>...</code></td>\n",
    "            <td>'Once'<br>&#9989</td>\n",
    "            <td>'upon'<br>&#9989</td>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'time'<br>&#9989</td>\n",
    "            <td>','<br>&#9989</td>\n",
    "            <td>'in'<br>&#9989</td>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'small'<br>&#9989</td>\n",
    "            <td>'village'<br>&#9989</td>\n",
    "            <td>'village'<br>&#x274C</td>\n",
    "            <td>'led'<br>&#9989</td>\n",
    "            <td>'between'<br>&#x274C</td>\n",
    "            <td>'the'<br>&#10067</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['coffee', 'shop', '?', 'A', 'SS', 'IST', 'ANT', ':', 'Once', 'upon', 'a', 'time', ',', 'in', 'a', 'small', 'mountain', 'nest', 'led', 'in']\n",
      "['shop', '?', '\\n', 'story', 'S', '\\n', 'I', 'Once', 'upon', 'a', 'time', ',', 'in', 'a', 'small', 'village', 'village', 'led', 'between', 'the']\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    input_ids_mod = deepcopy(input_ids)\n",
    "    input_ids_mod[0][-4] = 14378 # replace 'village' with 'mountain'\n",
    "    output = model.base_model(torch.as_tensor(input_ids_mod).cuda()).logits\n",
    "    pred = output.argmax(-1)\n",
    "    print(tokenizer.batch_decode(input_ids_mod[0][-20:]))\n",
    "    print(tokenizer.batch_decode(pred[0,-20:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, rethinking the problem in another way. You are given the previous `prompt`, and a fortune teller gazed deep into her crystal ball and whispers, \"Ah, the ancient spirit of Vicuna spoke to me. It said: **Once upon a time, in a small moutain nestled in...**\"\n",
    "\n",
    "Doubt creeps into your mind. Is her prediction genuine? With a mix of skepticism and curiosity, you challenged her, \"Let us perform one inference to validate your foresight.\"\n",
    "\n",
    "You then input the combination of her revelation and the original prompt into the model. Astoundingly, the model's output mirrors her prediction to the letter... until a deviation at the word '**village**'.\n",
    "\n",
    "OK, you might realize the fortune teller is what we called '**speculative decoding**', a small model or Medusa heads that can draft next several tokens for you.\n",
    "\n",
    "For this particular round, let's determine the number of accurate tokens the fortune teller has provided.\n",
    "\n",
    "You initiate a single inference and notice that for the most recent prompt token, '**:**', the model's output is '**Once**'. This is the model's **own** autoregressive generation and it is in the equilibrium state. Even without her, you still know the model will output '**Once**' for the input '**:**'!\n",
    "\n",
    "That means she correctly predicted '**upon a time, in a small**', didn't she?\n",
    "\n",
    "But wait! Something seems off. You verified '**small**' is correct. And what about the output for the input token '**small**'? Since the previous predictions all stay equilibrium, the model's output for 'small', '**village**' should be in the equilibrium state.\n",
    "\n",
    "So eventhough she didn't predict '**village**' correctly, through one inference, you can still get the correct autoregressive result for the input '**small**'!\n",
    "\n",
    "Consider this: in the extreme scenario where the fortune teller is completely off the mark with her predictions, the model would still autonomously generate 1 correct token in response to the prompt.\n",
    "\n",
    "The inference verification inherently ensures a lower bound **1** for correct prediction. In other words, the verification guarantees at least **1** correct token in its predictions.\n",
    "\n",
    "Hence, if everything goes off, the verification is just a regular autoregressive inference. As a result, every step necessitates only one inference for both verification and autoregressive processes."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## What are Medusa Heads?\n",
    "\n",
    "So what exactly are Medusa heads? At a glance, they might be reminiscent of the language model head in the original architecture, particularly the last layer of a causal Transformer model. However, there's a distinguishing factor. Instead of predicting solely the immediate next token, Medusa heads are designed to predict multiple upcoming tokens. This intriguing feature has its roots in the [Blockwise Parallel Decoding approach](https://arxiv.org/abs/1811.03115). To realize this, each Medusa head is structured as a feed-forward network, and to enhance its efficiency, it is further complemented with a residual connection.\n",
    "\n",
    "We print the Medusa heads' structure below that contains 4 identical module. Each module starts with a residual block, consisting of a linear layer followed by a SiLU activation function, and concludes with another linear layer which outputs the classification results.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ModuleList(\n",
      "  (0-3): 4 x Sequential(\n",
      "    (0): ResBlock(\n",
      "      (linear): Linear(in_features=4096, out_features=4096, bias=True)\n",
      "      (act): SiLU()\n",
      "    )\n",
      "    (1): Linear(in_features=4096, out_features=32000, bias=False)\n",
      "  )\n",
      ")\n"
     ]
    }
   ],
   "source": [
    "# see the structure of medusa heads\n",
    "print(model.medusa_head)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Initial inference with Medusa heads\n",
    "\n",
    "Here, we perform the first inference with Medusa heads. We feed the prompt into the model and get the model's head's prediction and the Medusa heads' prediction:\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th> </th>\n",
    "            <th>Model's head</th>\n",
    "            <th>Medusa head 1</th>\n",
    "            <th>Medusa head 2</th>\n",
    "            <th>Medusa head 3</th>\n",
    "            <th>Medusa head 4</th>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th> Prediction </th>\n",
    "            <td>'Once'<br>&#9989</td>\n",
    "            <td>'upon'<br>&#10067</td>\n",
    "            <td>'ly'<br>&#10067</td>\n",
    "            <td>'time'<br>&#10067</td>\n",
    "            <td>','<br>&#10067</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "Since only the model's head's prediction is in the equilibrium state and the Medusa heads' are unknown, we need to perform second inference to verify the Medusa heads' prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Medusa logits shape: torch.Size([4, 1, 66, 32000]) logits shape: torch.Size([1, 66, 32000])\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    input_ids = tokenizer([prompt]).input_ids\n",
    "    input_len = len(input_ids[0])\n",
    "    input_ids = torch.as_tensor(input_ids).cuda()\n",
    "    model.current_length_data.zero_() # this is for rerun\n",
    "    medusa_logits, outputs, logits = model(input_ids, output_orig = True, past_key_values=model.past_key_values)\n",
    "print('Medusa logits shape:', medusa_logits.shape, 'logits shape:', logits.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Base model prediction: ['Once']\n",
      "Medusa prediction: ['upon', 'ly', 'time', ',']\n",
      "Combined prediction: ['Once', 'upon', 'ly', 'time', ',']\n"
     ]
    }
   ],
   "source": [
    "medusa_pred = torch.argmax(medusa_logits[..., -1, :], dim = -1)\n",
    "pred = torch.argmax(logits[..., -1, :], dim = -1)\n",
    "print('Base model prediction:', tokenizer.batch_decode(pred))\n",
    "print('Medusa prediction:', tokenizer.batch_decode(medusa_pred))\n",
    "preds = torch.cat([pred, medusa_pred[:, 0 ]], dim = -1)\n",
    "print('Combined prediction:', tokenizer.batch_decode(preds))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Second inference with Medusa heads\n",
    "\n",
    "We feed the 5 tokens into the model together with the past KV cache. \n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>Input</th>\n",
    "            <td>'Once'</td>\n",
    "            <td>'upon'</td>\n",
    "            <td>'ly'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>','</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>Model output</th>\n",
    "            <td>'upon'<br>&#9989</td>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'a'<br>&#x274C</td>\n",
    "            <td>','<br>&#x274C</td>\n",
    "            <td>'in'<br>&#x274C</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "Though the Medusa heads only predict '**upon**' correctly, recall from the previous section of the model's equilibrium property, we still can get the correct autoregressive result '**a**' for the input '**upon**'!\n",
    "\n",
    "Let's calculate how many tokens in the equilibrium state we can get from the initial and second inference.\n",
    "\n",
    "* Initial inference: Since we didn't verify the Medusa heads' prediction, we only get 1 token in the equilibrium state, which is the model's head's prediction '**Once**'.\n",
    "* Second inference: We verify the Medusa heads' prediction '**upon**', and we know the next token '**a**' is in the equilibrium state. So we get 2 tokens in the equilibrium state.\n",
    "\n",
    "In total, we get 3 tokens in the equilibrium state. Current acceleration ratio is 3/2 = **1.5x**.\n",
    "\n",
    "Then, we need to prepare the input for the third inference. We combine the '**upon**''s output with its Medusa heads' prediction as the next input.\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th> </th>\n",
    "            <th>Model's head</th>\n",
    "            <th>Medusa head 1</th>\n",
    "            <th>Medusa head 2</th>\n",
    "            <th>Medusa head 3</th>\n",
    "            <th>Medusa head 4</th>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th> Prediction </th>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'time'<br>&#10067</td>\n",
    "            <td>','<br>&#10067</td>\n",
    "            <td>'there'<br>&#10067</td>\n",
    "            <td>'a'<br>&#10067</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "Another tricky thing we have to deal with is that the past KV cache already contains medusa heads' KV cache with total length 66 (`prompt`) + 5 (`preds`) = 71, so we have a KV management system to reset the KV cache to correct length (66 + 2 = 68)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.inference_mode():\n",
    "  medusa_logits, outputs, logits = model(preds.cuda().unsqueeze(0), output_orig = True, past_key_values = model.past_key_values)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Base model prediction: ['upon', 'a', 'a', ',', 'in']\n",
      "truncated input tokens: [2501, 368, 931, 29892]\n",
      "Output tokens: [2501, 263, 263, 29892, 297]\n"
     ]
    }
   ],
   "source": [
    "medusa_pred = torch.argmax(medusa_logits[..., -5:, :], dim = -1)\n",
    "pred = torch.argmax(logits[..., :, :], dim = -1)\n",
    "print('Base model prediction:', tokenizer.batch_decode(pred[0]))\n",
    "print('truncated input tokens:', preds[1:].tolist())\n",
    "print('Output tokens:', pred[0, :].tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Posterior mask: [1, 0, 0, 1]\n",
      "Accept length: 1\n",
      "Current KV cache length for attention modules: 71\n",
      "Start length: 66 ,current length: 68\n",
      "Combined prediction: ['a', 'time', ',', 'there', 'a']\n"
     ]
    }
   ],
   "source": [
    "posterior_mask = (\n",
    "            preds[1:] == pred[0, :-1]\n",
    "        ).int()\n",
    "accept_length = torch.cumprod(posterior_mask, dim = -1).sum().item()\n",
    "cur_length = accept_length + input_len + 1\n",
    "print('Posterior mask:', posterior_mask.tolist())\n",
    "print('Accept length:', accept_length)\n",
    "print('Current KV cache length for attention modules:', model.current_length_data[0].item())\n",
    "print('Start length:', input_len, ',current length:', cur_length)\n",
    "# update kv cache\n",
    "model.current_length_data.fill_(cur_length)\n",
    "# create new input\n",
    "preds = torch.cat([pred[:, accept_length], medusa_pred[:,0,accept_length]], dim = -1)\n",
    "print('Combined prediction:', tokenizer.batch_decode(preds))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Third inference with Medusa heads\n",
    "\n",
    "Let's practice another inference and reinforce our understanding!\n",
    "\n",
    "Outputs of the third inference:\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>Input</th>\n",
    "            <td>'a'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>','</td>\n",
    "            <td>'there'</td>\n",
    "            <td>'a'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>Model output</th>\n",
    "            <td>'time'<br>&#9989</td>\n",
    "            <td>','<br>&#9989</td>\n",
    "            <td>'in'<br>&#9989</td>\n",
    "            <td>'was'<br>&#x274C</td>\n",
    "            <td>'ll'<br>&#x274C</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "This time, the model correctly predict '**time**' and '**,**', and '**there**' and '**a**' are incorrect. However, we still get the correct autoregressive result '**in**' for the input '**,**'!\n",
    "\n",
    "So how many tokens the original model outputs, or in the equilibrium state, can we get from the 3 inference?\n",
    "\n",
    "* Initial inference & second inference: see what we discussed above, we get 3 tokens in the equilibrium state.\n",
    "* Third inference: we verify the Medusa heads' prediction '**time**' and '**,**', and the next token '**in**' is in the equilibrium state. So we get 3 tokens in the equilibrium state.\n",
    "\n",
    "In total, we get 6 tokens in the equilibrium state. Acceleration ratio for the first 3 inferences is 6/3 = **2x**.\n",
    "\n",
    "And then, we combine the '**upon**''s output with its Medusa heads' prediction as the next input.\n",
    "\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th> </th>\n",
    "            <th>Model's head</th>\n",
    "            <th>Medusa head 1</th>\n",
    "            <th>Medusa head 2</th>\n",
    "            <th>Medusa head 3</th>\n",
    "            <th>Medusa head 4</th>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th> Prediction </th>\n",
    "            <td>'in'<br>&#9989</td>\n",
    "            <td>'a'<br>&#10067</td>\n",
    "            <td>'a'<br>&#10067</td>\n",
    "            <td>'far'<br>&#10067</td>\n",
    "            <td>'off'<br>&#10067</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.inference_mode():\n",
    "    medusa_logits, outputs, logits = model(preds.cuda().unsqueeze(0), output_orig = True, past_key_values = model.past_key_values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Base model prediction: ['time', ',', 'in', 'was', 'll']\n",
      "truncated input tokens: [931, 29892, 727, 263]\n",
      "Output tokens: [931, 29892, 297, 471, 11148]\n"
     ]
    }
   ],
   "source": [
    "medusa_pred = torch.argmax(medusa_logits[..., -5:, :], dim = -1)\n",
    "pred = torch.argmax(logits[..., :, :], dim = -1)\n",
    "print('Base model prediction:', tokenizer.batch_decode(pred[0]))\n",
    "print('truncated input tokens:', preds[1:].tolist())\n",
    "print('Output tokens:', pred[0, :].tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Posterior mask: [1, 1, 0, 0]\n",
      "Accept length: 2\n",
      "Current KV cache length for attention modules: 73\n",
      "Start length: 66 current length: 71\n",
      "Combined prediction: ['in', 'a', 'a', 'far', 'off']\n"
     ]
    }
   ],
   "source": [
    "posterior_mask = (\n",
    "            preds[1:] == pred[0, :-1]\n",
    "        ).int()\n",
    "accept_length = torch.cumprod(posterior_mask, dim = -1).sum().item()\n",
    "cur_length = accept_length + cur_length + 1\n",
    "print('Posterior mask:', posterior_mask.tolist())\n",
    "print('Accept length:', accept_length)\n",
    "print('Current KV cache length for attention modules:', model.current_length_data[0].item())\n",
    "print('Start length:', input_len, 'current length:', cur_length)\n",
    "# update kv cache\n",
    "model.current_length_data.fill_(cur_length)\n",
    "# create new input\n",
    "preds = torch.cat([pred[:, accept_length], medusa_pred[:,0,accept_length]], dim = -1)\n",
    "print('Combined prediction:', tokenizer.batch_decode(preds))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Let's put it all together!\n",
    "\n",
    "We now have a better understanding of the Medusa heads' inference process. Let's put the entire process together and see the compression ratio we can get for generating the whole conversation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Prediction @ 1: ['Once']\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Prediction @ 2: ['upon', 'a']\n",
      "Prediction @ 3: ['time', ',', 'in']\n",
      "Prediction @ 4: ['a', 'small']\n",
      "Prediction @ 5: ['village', 'nest', 'led']\n",
      "Prediction @ 6: ['in', 'the', 'And']\n",
      "Prediction @ 7: ['es']\n",
      "Prediction @ 8: ['mountains']\n",
      "Prediction @ 9: [',']\n",
      "Prediction @ 10: ['there', 'lived', 'a', 'char']\n",
      "Prediction @ 11: ['ming', 'll']\n",
      "Prediction @ 12: ['ama']\n",
      "Prediction @ 13: ['named', 'L']\n",
      "Prediction @ 14: ['una', '.']\n",
      "Prediction @ 15: ['L']\n",
      "Prediction @ 16: ['una', 'was', 'known', 'for']\n",
      "Prediction @ 17: ['her', 'kind']\n",
      "Prediction @ 18: ['heart']\n",
      "Prediction @ 19: ['and', 'her']\n",
      "Prediction @ 20: ['love', 'of']\n",
      "Prediction @ 21: ['coffee']\n",
      "Prediction @ 22: ['.']\n",
      "Prediction @ 23: ['She']\n",
      "Prediction @ 24: ['would']\n",
      "Prediction @ 25: ['often']\n",
      "Prediction @ 26: ['spend', 'her']\n",
      "Prediction @ 27: ['af']\n",
      "Prediction @ 28: ['tern']\n",
      "Prediction @ 29: ['o']\n",
      "Prediction @ 30: ['ons', 'si']\n",
      "Prediction @ 31: ['pping']\n",
      "Prediction @ 32: ['on', 'a', 'ste']\n",
      "Prediction @ 33: ['aming']\n",
      "Prediction @ 34: ['cup', 'of']\n",
      "Prediction @ 35: ['jo']\n",
      "Prediction @ 36: ['e']\n",
      "Prediction @ 37: ['at', 'the', 'local']\n",
      "Prediction @ 38: ['c']\n",
      "Prediction @ 39: ['afé', ',']\n",
      "Prediction @ 40: ['ch']\n",
      "Prediction @ 41: ['atting', 'with']\n",
      "Prediction @ 42: ['the', 'vill']\n",
      "Prediction @ 43: ['agers', 'and']\n",
      "Prediction @ 44: ['enjo']\n",
      "Prediction @ 45: ['ying', 'the', 'warm']\n",
      "Prediction @ 46: ['th']\n",
      "Prediction @ 47: ['of']\n",
      "Prediction @ 48: ['the', 'sun', 'on']\n",
      "Prediction @ 49: ['her']\n",
      "Prediction @ 50: ['back']\n",
      "Prediction @ 51: ['.', '\\n']\n",
      "Prediction @ 52: ['\\n', 'One', 'day', ',', 'as']\n",
      "Prediction @ 53: ['L']\n",
      "Prediction @ 54: ['una', 'was']\n",
      "Prediction @ 55: ['gra']\n",
      "Prediction @ 56: ['zing']\n",
      "Prediction @ 57: ['on']\n",
      "Prediction @ 58: ['some']\n",
      "Prediction @ 59: ['fresh', 'grass']\n",
      "Prediction @ 60: [',']\n",
      "Prediction @ 61: ['she']\n",
      "Prediction @ 62: ['noticed', 'that']\n",
      "Prediction @ 63: ['her', 'hair', 'was']\n",
      "Prediction @ 64: ['starting']\n",
      "Prediction @ 65: ['to']\n",
      "Prediction @ 66: ['grow', 'longer']\n",
      "Prediction @ 67: ['and']\n",
      "Prediction @ 68: ['th']\n",
      "Prediction @ 69: ['icker', '.']\n",
      "Prediction @ 70: ['At']\n",
      "Prediction @ 71: ['first']\n",
      "Prediction @ 72: [',', 'she', 'didn']\n",
      "Prediction @ 73: [\"'\", 't', 'think']\n",
      "Prediction @ 74: ['much']\n",
      "Prediction @ 75: ['of']\n",
      "Prediction @ 76: ['it', ',', 'but']\n",
      "Prediction @ 77: ['as', 'the']\n",
      "Prediction @ 78: ['days', 'went', 'on']\n",
      "Prediction @ 79: [',', 'her']\n",
      "Prediction @ 80: ['hair', 'continued']\n",
      "Prediction @ 81: ['to', 'grow']\n",
      "Prediction @ 82: ['and']\n",
      "Prediction @ 83: ['change']\n",
      "Prediction @ 84: ['.', 'It']\n",
      "Prediction @ 85: ['became']\n",
      "Prediction @ 86: ['thick']\n",
      "Prediction @ 87: ['and', 'wir']\n",
      "Prediction @ 88: ['y']\n",
      "Prediction @ 89: [',', 'with']\n",
      "Prediction @ 90: ['sharp']\n",
      "Prediction @ 91: ['sp', 'ikes']\n",
      "Prediction @ 92: ['pro']\n",
      "Prediction @ 93: ['tr']\n",
      "Prediction @ 94: ['ud']\n",
      "Prediction @ 95: ['ing', 'from']\n",
      "Prediction @ 96: ['it']\n",
      "Prediction @ 97: ['.', '\\n']\n",
      "Prediction @ 98: ['\\n', 'L']\n",
      "Prediction @ 99: ['una']\n",
      "Prediction @ 100: ['was']\n",
      "Prediction @ 101: ['confused']\n",
      "Prediction @ 102: ['and']\n",
      "Prediction @ 103: ['a']\n",
      "Prediction @ 104: ['little']\n",
      "Prediction @ 105: ['sc']\n",
      "Prediction @ 106: ['ared', 'by']\n",
      "Prediction @ 107: ['her']\n",
      "Prediction @ 108: ['new', 'appearance']\n",
      "Prediction @ 109: ['.', 'She', 'had']\n",
      "Prediction @ 110: ['always']\n",
      "Prediction @ 111: ['been']\n",
      "Prediction @ 112: ['a', 'gentle']\n",
      "Prediction @ 113: ['creature']\n",
      "Prediction @ 114: [',']\n",
      "Prediction @ 115: ['and', 'now']\n",
      "Prediction @ 116: ['she']\n",
      "Prediction @ 117: ['looked', 'like']\n",
      "Prediction @ 118: ['a']\n",
      "Prediction @ 119: ['mon']\n",
      "Prediction @ 120: ['ster']\n",
      "Prediction @ 121: ['.']\n",
      "Prediction @ 122: ['She']\n",
      "Prediction @ 123: ['knew']\n",
      "Prediction @ 124: ['that', 'she']\n",
      "Prediction @ 125: ['couldn']\n",
      "Prediction @ 126: [\"'\"]\n",
      "Prediction @ 127: ['t', 'stay']\n",
      "Prediction @ 128: ['in']\n",
      "Prediction @ 129: ['the', 'village', 'anymore']\n",
      "Prediction @ 130: [',']\n",
      "Prediction @ 131: ['so']\n",
      "Prediction @ 132: ['she', 'set']\n",
      "Prediction @ 133: ['off']\n",
      "Prediction @ 134: ['on', 'a', 'journey', 'to']\n",
      "Prediction @ 135: ['find', 'a']\n",
      "Prediction @ 136: ['new']\n",
      "Prediction @ 137: ['home']\n",
      "Prediction @ 138: ['.', '\\n']\n",
      "Prediction @ 139: ['\\n', 'As', 'she', 'w']\n",
      "Prediction @ 140: ['ander', 'ed']\n",
      "Prediction @ 141: ['through']\n",
      "Prediction @ 142: ['the', 'mountains']\n",
      "Prediction @ 143: [',', 'L']\n",
      "Prediction @ 144: ['una', 'st']\n",
      "Prediction @ 145: ['umbled', 'upon', 'a', 'beautiful']\n",
      "Prediction @ 146: ['clear']\n",
      "Prediction @ 147: ['ing']\n",
      "Prediction @ 148: ['.']\n",
      "Prediction @ 149: ['In']\n",
      "Prediction @ 150: ['the']\n",
      "Prediction @ 151: ['center', 'of']\n",
      "Prediction @ 152: ['the', 'clear', 'ing']\n",
      "Prediction @ 153: ['stood']\n",
      "Prediction @ 154: ['a']\n",
      "Prediction @ 155: ['small', 'c']\n",
      "Prediction @ 156: ['ott']\n",
      "Prediction @ 157: ['age', ',', 'with']\n",
      "Prediction @ 158: ['a', 'sign']\n",
      "Prediction @ 159: ['h']\n",
      "Prediction @ 160: ['anging', 'outside']\n",
      "Prediction @ 161: ['that']\n",
      "Prediction @ 162: ['read']\n",
      "Prediction @ 163: ['\"', 'C']\n",
      "Prediction @ 164: ['afé']\n",
      "Prediction @ 165: ['L']\n",
      "Prediction @ 166: ['l']\n",
      "Prediction @ 167: ['ama']\n",
      "Prediction @ 168: ['.\"']\n",
      "Prediction @ 169: ['L']\n",
      "Prediction @ 170: ['una']\n",
      "Prediction @ 171: ['knew']\n",
      "Prediction @ 172: ['that', 'this']\n",
      "Prediction @ 173: ['was', 'where']\n",
      "Prediction @ 174: ['she']\n",
      "Prediction @ 175: ['belonged']\n",
      "Prediction @ 176: ['.']\n",
      "Prediction @ 177: ['\\n', '\\n', 'She']\n",
      "Prediction @ 178: ['transformed']\n",
      "Prediction @ 179: ['the', 'c']\n",
      "Prediction @ 180: ['ott', 'age']\n",
      "Prediction @ 181: ['into', 'a']\n",
      "Prediction @ 182: ['co', 'zy', 'coffee']\n",
      "Prediction @ 183: ['shop', ',']\n",
      "Prediction @ 184: ['serving']\n",
      "Prediction @ 185: ['the']\n",
      "Prediction @ 186: ['best']\n",
      "Prediction @ 187: ['coffee']\n",
      "Prediction @ 188: ['in']\n",
      "Prediction @ 189: ['the', 'mountains']\n",
      "Prediction @ 190: ['.', 'The']\n",
      "Prediction @ 191: ['vill', 'agers']\n",
      "Prediction @ 192: ['were', 'amaz']\n",
      "Prediction @ 193: ['ed']\n",
      "Prediction @ 194: ['by', 'L']\n",
      "Prediction @ 195: ['una']\n",
      "Prediction @ 196: [\"'\", 's', 'transformation']\n",
      "Prediction @ 197: [',']\n",
      "Prediction @ 198: ['and', 'they']\n",
      "Prediction @ 199: ['f']\n",
      "Prediction @ 200: ['locked']\n",
      "Prediction @ 201: ['to']\n",
      "Prediction @ 202: ['her', 'c']\n",
      "Prediction @ 203: ['afé', 'to']\n",
      "Prediction @ 204: ['taste']\n",
      "Prediction @ 205: ['her']\n",
      "Prediction @ 206: ['del', 'icious']\n",
      "Prediction @ 207: ['bre']\n",
      "Prediction @ 208: ['ws']\n",
      "Prediction @ 209: ['.', '\\n', '\\n', 'L']\n",
      "Prediction @ 210: ['una']\n",
      "Prediction @ 211: [\"'\"]\n",
      "Prediction @ 212: ['s', 'Med']\n",
      "Prediction @ 213: ['usa']\n",
      "Prediction @ 214: ['-', 'like']\n",
      "Prediction @ 215: ['hair', 'became']\n",
      "Prediction @ 216: ['her']\n",
      "Prediction @ 217: ['signature']\n",
      "Prediction @ 218: ['style']\n",
      "Prediction @ 219: [',', 'and']\n",
      "Prediction @ 220: ['she']\n",
      "Prediction @ 221: ['quickly']\n",
      "Prediction @ 222: ['became']\n",
      "Prediction @ 223: ['known']\n",
      "Prediction @ 224: ['as', 'the', 'most']\n",
      "Prediction @ 225: ['char']\n",
      "Prediction @ 226: ['ming']\n",
      "Prediction @ 227: ['ll']\n",
      "Prediction @ 228: ['ama']\n",
      "Prediction @ 229: ['in']\n",
      "Prediction @ 230: ['the', 'land']\n",
      "Prediction @ 231: ['.', 'She']\n",
      "Prediction @ 232: ['spent']\n",
      "Prediction @ 233: ['her', 'days']\n",
      "Prediction @ 234: ['si']\n",
      "Prediction @ 235: ['pping']\n",
      "Prediction @ 236: ['coffee', ',']\n",
      "Prediction @ 237: ['ch']\n",
      "Prediction @ 238: ['atting', 'with']\n",
      "Prediction @ 239: ['customers']\n",
      "Prediction @ 240: [',']\n",
      "Prediction @ 241: ['and', 'enjo']\n",
      "Prediction @ 242: ['ying']\n",
      "Prediction @ 243: ['the']\n",
      "Prediction @ 244: ['warm']\n",
      "Prediction @ 245: ['th']\n",
      "Prediction @ 246: ['of', 'the', 'sun']\n",
      "Prediction @ 247: ['on']\n",
      "Prediction @ 248: ['her', 'back']\n",
      "Prediction @ 249: ['.', 'And']\n",
      "Prediction @ 250: ['she']\n",
      "Prediction @ 251: ['knew']\n",
      "Prediction @ 252: ['that']\n",
      "Prediction @ 253: ['she', 'had', 'finally']\n",
      "Prediction @ 254: ['found']\n",
      "Prediction @ 255: ['her', 'true']\n",
      "Prediction @ 256: ['home', '.', '</s>', '<s>']\n"
     ]
    }
   ],
   "source": [
    "inference_count = 0\n",
    "accept_lengths = []\n",
    "with torch.inference_mode():\n",
    "    input_ids = tokenizer([prompt]).input_ids\n",
    "    input_len = len(input_ids[0])\n",
    "    input_ids = torch.as_tensor(input_ids).cuda()\n",
    "    model.current_length_data.zero_() # this is for rerun\n",
    "    medusa_logits, outputs, logits = model(input_ids, output_orig = True, past_key_values=model.past_key_values)\n",
    "    inference_count += 1\n",
    "\n",
    "    medusa_pred = torch.argmax(medusa_logits[..., -1, :], dim = -1)\n",
    "    pred = torch.argmax(logits[..., -1, :], dim = -1)\n",
    "    preds = torch.cat([pred, medusa_pred[:, 0 ]], dim = -1)\n",
    "    print(f'Prediction @ {inference_count}: {tokenizer.batch_decode(pred)}')\n",
    "    cur_length = input_len\n",
    "    accept_lengths.append(1)\n",
    "    for _ in range(1024):\n",
    "        medusa_logits, outputs, logits = model(preds.cuda().unsqueeze(0), output_orig = True, past_key_values = model.past_key_values)\n",
    "        inference_count += 1\n",
    "\n",
    "        medusa_pred = torch.argmax(medusa_logits[..., -5:, :], dim = -1)\n",
    "        pred = torch.argmax(logits[..., :, :], dim = -1)\n",
    "        posterior_mask = (\n",
    "                    preds[1:] == pred[0, :-1]\n",
    "                ).int()\n",
    "        accept_length = torch.cumprod(posterior_mask, dim = -1).sum().item()\n",
    "        cur_length = cur_length + accept_length + 1\n",
    "        # update kv cache\n",
    "        model.current_length_data.fill_(cur_length)\n",
    "        # create new input\n",
    "        preds = torch.cat([pred[:, accept_length], medusa_pred[:,0,accept_length]], dim = -1)\n",
    "        print(f'Prediction @ {inference_count}: {tokenizer.batch_decode(pred[0, :accept_length + 1])}')\n",
    "        accept_lengths.append(accept_length + 1)\n",
    "        if tokenizer.eos_token_id in pred[0, :accept_length + 1]:\n",
    "            break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Avg. accept length: 1.578125\n"
     ]
    },
    {
     "data": {
      "image/png": "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27ZtOOyww/Ctb32L/f3qq6/GN77xDdxwww146KGHsMsuu+DUU0/Fzp07ozLnnXcenn76aSxevBi/+c1vcN999+Gf/umfmnULbY205wsAp512mtaff/rTn2q/y/N1495778VFF12EBx98EIsXL8bQ0BBOOeUUbNu2LSqTNicUi0WceeaZGBwcxAMPPIAf/OAHWLRoEa644opW3FLbwecZA8CHP/xhrR9fffXV0W9t94xDQc1461vfGl500UXR92KxGE6fPj1cuHBhC1vVufjsZz8bHnbYYexvmzZtCnt6esJbb701Ovbss8+GAMJly5Y1qYWdCwDh7bffHn0PgiCcOnVq+JWvfCU6tmnTprCvry/86U9/GoZhGD7zzDMhgPDhhx+Oyvz2t78NM5lM+NprrzWt7Z0A8/mGYRief/754dlnn+08R55vZdiwYUMIILz33nvDMPSbE+68884wm82G69ati8pcf/314dixY8OBgYHm3kAHwHzGYRiGxx9/fHjJJZc4z2m3ZyzMTY0YHBzEo48+ipNOOik6ls1mcdJJJ2HZsmUtbFln48UXX8T06dOxzz774LzzzsOqVasAAI8++iiGhoa0533ggQdizz33lOddBV5++WWsW7dOe57jxo3DMcccEz3PZcuWYfz48Tj66KOjMieddBKy2Sweeuihpre5E7F06VJMnjwZs2bNwkc/+lG88cYb0W/yfCvD5s2bAQATJkwA4DcnLFu2DIceeiimTJkSlTn11FPR39+Pp59+uomt7wyYz1jhJz/5CSZOnIjZs2djwYIF2L59e/Rbuz3jYZc4s97461//imKxqL1QAJgyZQqee+65FrWqs3HMMcdg0aJFmDVrFtauXYvPf/7zeOc734mnnnoK69atQ29vL8aPH6+dM2XKFKxbt641De5gqGfG9V/127p16zB58mTt93w+jwkTJsgz98Bpp52G9773vZg5cyZeeuklfPrTn8bpp5+OZcuWIZfLyfOtAEEQ4NJLL8Xb3/52zJ49GwC85oR169axfVz9JojBPWMA+Lu/+zvstddemD59Op544gl86lOfwvPPP4/bbrsNQPs9YxFuBG2H008/Pfo8Z84cHHPMMdhrr73w85//HCNHjmxhywSCyvGBD3wg+nzooYdizpw52HfffbF06VKceOKJLWxZ5+Giiy7CU089pdngCeoL1zOm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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(accept_lengths)\n",
    "plt.xlabel('Inference step')\n",
    "plt.ylabel('Accept length')\n",
    "print('Avg. accept length:', np.mean(accept_lengths))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Unleash the power of Medusa by Tree Attention\n",
    "\n",
    "Only a 1.58x speedup? You might think that's underwhelming. However, remember what we implemented in the previous section was merely the list structure of Medusa heads. This means we utilized only the Top-1 prediction from each Medusa head. In this section, we will introduce the Tree Attention mechanism, which is the key to unlocking the full potential of Medusa heads. We show a tree structure of Medusa heads below.\n",
    "\n",
    "<div align=\"center\">\n",
    "  <picture>\n",
    "  <img src=\"../assets/medusa_choices.png\" width=\"100%\">\n",
    "  </picture>\n",
    "  <br>\n",
    "  <div align=\"left\" width=\"80%\">\n",
    "  <em>  We won't dive deep into how this tree was constructed. In simple terms, the tree shows us the optimized paths chosen by an algorithm that looks for the highest accuracy expectations under constraints. At every depth level, childrens from one node moving from left to right shows the top-k selections for each Medusa head. Noticeably, the Top-0 of Medusa head 1 has the most branching out, making the tree tilt more to the left. The left-heavy nature of the tree indicates that the top choices (shallower on the left) tend to have higher accuracy expectations. This suggests that the earliler (head 1 or 2) or topmost (top 1 or 2) choices are more reliable in their predictions. \n",
    "  </em>\n",
    "  </div>\n",
    "  <br>\n",
    "</div>\n",
    "\n",
    "Let's try the tree attention with practical example!\n",
    "\n",
    "### Initial inference with Medusa heads"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "with torch.inference_mode():\n",
    "    new_token = 0\n",
    "    input_ids = tokenizer([prompt]).input_ids\n",
    "    input_len = len(input_ids[0])\n",
    "    input_ids = torch.as_tensor(input_ids).cuda()\n",
    "    model.current_length_data.zero_() # this is for rerun\n",
    "    reset_medusa_mode(model)\n",
    "    medusa_buffers = generate_medusa_buffers(\n",
    "                medusa_choices, device=model.base_model.device\n",
    "            )\n",
    "    medusa_logits, logits = initialize_medusa(\n",
    "            input_ids, model, medusa_buffers[\"medusa_attn_mask\"], past_key_values\n",
    "        )"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have a function `generate_candidates` to retrieve the top-k predictions on the tree.\n",
    "\n",
    "`tree_candidates` contains the predictions on the nodes of the tree (also include the root node which is the model's head prediction).\n",
    "\n",
    "The `candidates` are all the paths (total 42) from the root node to the leaf nodes, padded with `<unk>` token."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Candidates shape: torch.Size([42, 5])\n",
      "Tree candidates shape: torch.Size([1, 64])\n",
      "Most left 2 candidates path: ['Once', 'upon', 'ly', 'time', 'a'] ['Once', 'upon', 'ly', 'time', ',']\n",
      "Another candidate path: ['Once', 'upon', 'there', '<unk>', '<unk>']\n"
     ]
    }
   ],
   "source": [
    "candidates, tree_candidates = generate_candidates(\n",
    "                medusa_logits,\n",
    "                logits,\n",
    "                medusa_buffers[\"tree_indices\"],\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "            )\n",
    "print('Candidates shape:', candidates.shape)\n",
    "print('Tree candidates shape:', tree_candidates.shape)\n",
    "print('Most left 2 candidates path:', tokenizer.batch_decode(candidates[0]), tokenizer.batch_decode(candidates[1]))\n",
    "print('Another candidate path:', tokenizer.batch_decode(candidates[-1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Second inference with Medusa heads\n",
    "\n",
    "Like the previous section, we still need to verify the Medusa heads' prediction. Since we perform the greedy decoding, we set the `temperature` to **0.0** and ignore the `posterior_threshold` and `posterior_alpha` parameters. \n",
    "\n",
    "We have two functions, `tree_decoding` and `evaluate_posterior`.\n",
    "\n",
    "The `tree_decoding` performs the tree-attention-based inference.\n",
    "\n",
    "The `evaluate_posterior` performs the verification of the tree."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Medusa logits shape torch.Size([4, 42, 5, 32000])\n",
      "Logits shape torch.Size([42, 5, 32000])\n",
      "Best candidate path index: 14\n",
      "Accept length: 3\n"
     ]
    }
   ],
   "source": [
    "with torch.inference_mode():\n",
    "    medusa_logits, logits, outputs = tree_decoding(\n",
    "                model,\n",
    "                tree_candidates,\n",
    "                past_key_values,\n",
    "                medusa_buffers[\"medusa_position_ids\"],\n",
    "                input_ids,\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "            )\n",
    "    best_candidate, accept_length = evaluate_posterior(\n",
    "                logits, candidates, temperature = 0, posterior_threshold = 0, posterior_alpha = 0\n",
    "            )\n",
    "    print('Medusa logits shape', medusa_logits.shape)\n",
    "    print('Logits shape', logits.shape)\n",
    "    print('Best candidate path index:', best_candidate.item())\n",
    "    print('Accept length:', accept_length.item())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's see how the best candidate path looks like."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Retrieved input @ best candidate: ['Once', 'upon', 'a', 'time', '<unk>']\n",
      "Retrieved output @ best candidate: ['upon', 'a', 'time', ',', 'char']\n",
      "Retrieved input @ another candidate: ['Once', 'upon', 'ly', 'time', 'a']\n",
      "Retrieved output @ another candidate: ['upon', 'a', 'a', ',', 'char']\n"
     ]
    }
   ],
   "source": [
    "print('Retrieved input @ best candidate:', tokenizer.batch_decode(candidates[best_candidate.item()]))\n",
    "print('Retrieved output @ best candidate:', tokenizer.batch_decode(logits.argmax(-1)[best_candidate.item()]))\n",
    "\n",
    "print('Retrieved input @ another candidate:', tokenizer.batch_decode(candidates[0]))\n",
    "print('Retrieved output @ another candidate:', tokenizer.batch_decode(logits.argmax(-1)[0]))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The verification is very, very similar to what we discussed in the previous section, **shift and compare**. \n",
    "\n",
    "Best path looks like this:\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>Input</th>\n",
    "            <td>'Once'</td>\n",
    "            <td>'upon'</td>\n",
    "            <td>'a'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>'&lt;unk&gt'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>Model output</th>\n",
    "            <td>'upon'<br>&#9989</td>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'time'<br>&#9989</td>\n",
    "            <td>','<br>&#x274C</td>\n",
    "            <td>'char'<br>&#x274C</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "Another path looks like this:\n",
    "<table border=\"1\">\n",
    "    <thead>\n",
    "        <tr>\n",
    "            <th>Input</th>\n",
    "            <td>'Once'</td>\n",
    "            <td>'upon'</td>\n",
    "            <td>'ly'</td>\n",
    "            <td>'time'</td>\n",
    "            <td>'a'</td>\n",
    "        </tr>\n",
    "    </thead>\n",
    "    <tbody>\n",
    "        <tr>\n",
    "            <th>Model output</th>\n",
    "            <td>'upon'<br>&#9989</td>\n",
    "            <td>'a'<br>&#9989</td>\n",
    "            <td>'a'<br>&#x274C</td>\n",
    "            <td>','<br>&#x274C</td>\n",
    "            <td>'char'<br>&#x274C</td>\n",
    "        </tr>\n",
    "    </tbody>\n",
    "</table>\n",
    "\n",
    "The best path contains more accepted tokens, so it win the competition!\n",
    "\n",
    "Now we will manage the KV cache (as we discussed before) and choose the correct input tokens on the path and it's medusa predictions for next tree."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Decode: ['Once upon a time']\n"
     ]
    }
   ],
   "source": [
    "input_ids, logits, medusa_logits, new_token = update_inference_inputs(\n",
    "                input_ids,\n",
    "                candidates,\n",
    "                best_candidate,\n",
    "                accept_length,\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "                outputs,\n",
    "                logits,\n",
    "                medusa_logits,\n",
    "                new_token,\n",
    "                past_key_values_data,\n",
    "                current_length_data,\n",
    "            )\n",
    "print('Decode:', tokenizer.batch_decode(input_ids[:,input_len:]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### It's time to put all the things together!\n",
    "\n",
    "Below is the whole process of the tree attention inference. The acceleration ratio is boosted from ~1.6X to ~2.4X!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Decode: ['Once upon a time, in a small village nestled in the Andes mountains, there lived a charming llama named Luna. Luna was known for her kind heart and her love of coffee. She would often spend her afternoons sipping on a steaming cup of joe at the local café, chatting with the villagers and enjoying the warmth of the sun on her back.\\n\\nOne day, as Luna was grazing on some fresh grass, she noticed that her hair was starting to grow longer and thicker. At first, she didn\\'t think much of it, but as the days went on, her hair continued to grow and change. It became thick and wiry, with sharp spikes protruding from it.\\n\\nLuna was confused and a little scared by her new appearance. She had always been a gentle creature, and now she looked like a monster. She knew that she couldn\\'t stay in the village anymore, so she set off on a journey to find a new home.\\n\\nAs she wandered through the mountains, Luna stumbled upon a beautiful clearing. In the center of the clearing stood a small cottage, with a sign hanging outside that read \"Café Llama.\" Luna knew that this was where she belonged.\\n\\nShe transformed the cottage into a cozy coffee shop, serving the best coffee in the mountains. The villagers were amazed by Luna\\'s transformation, and they flocked to her café to taste her delicious brews.\\n\\nLuna\\'s Medusa-like hair became her signature style, and she quickly became known as the most charming llama in the land. She spent her days sipping coffee, chatting with customers, and enjoying the warmth of the sun on her back. And she knew that she had finally found her true home.</s>']\n"
     ]
    }
   ],
   "source": [
    "accept_lengths_tree = []\n",
    "\n",
    "with torch.inference_mode():\n",
    "    new_token = 0\n",
    "    input_ids = tokenizer([prompt]).input_ids\n",
    "    input_len = len(input_ids[0])\n",
    "    input_ids = torch.as_tensor(input_ids).cuda()\n",
    "    model.current_length_data.zero_() # this is for rerun\n",
    "    reset_medusa_mode(model)\n",
    "    medusa_buffers = generate_medusa_buffers(\n",
    "                medusa_choices, device=model.base_model.device\n",
    "            )\n",
    "    medusa_logits, logits = initialize_medusa(\n",
    "            input_ids, model, medusa_buffers[\"medusa_attn_mask\"], past_key_values\n",
    "        )\n",
    "    cur_length = input_len + 1\n",
    "    accept_lengths_tree.append(1)\n",
    "    \n",
    "    for i in range(1024):\n",
    "        candidates, tree_candidates = generate_candidates(\n",
    "                medusa_logits,\n",
    "                logits,\n",
    "                medusa_buffers[\"tree_indices\"],\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "            )\n",
    "        medusa_logits, logits, outputs = tree_decoding(\n",
    "                model,\n",
    "                tree_candidates,\n",
    "                past_key_values,\n",
    "                medusa_buffers[\"medusa_position_ids\"],\n",
    "                input_ids,\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "            )\n",
    "        best_candidate, accept_length = evaluate_posterior(\n",
    "                logits, candidates, temperature = 0, posterior_threshold = 0, posterior_alpha = 0\n",
    "            )\n",
    "        input_ids, logits, medusa_logits, new_token = update_inference_inputs(\n",
    "                input_ids,\n",
    "                candidates,\n",
    "                best_candidate,\n",
    "                accept_length,\n",
    "                medusa_buffers[\"retrieve_indices\"],\n",
    "                outputs,\n",
    "                logits,\n",
    "                medusa_logits,\n",
    "                new_token,\n",
    "                past_key_values_data,\n",
    "                current_length_data,\n",
    "            )\n",
    "        \n",
    "        accept_length_tree = input_ids.shape[1] - cur_length\n",
    "        cur_length = accept_length_tree + cur_length\n",
    "        accept_lengths_tree.append(accept_length_tree)\n",
    "        if model.tokenizer.eos_token_id in input_ids[0, input_len:]:\n",
    "            break\n",
    "print('Decode:', tokenizer.batch_decode(input_ids[:,input_len:]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Avg. accept tree length: 2.4424242424242424\n",
      "Avg. accept list length: 1.578125\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9d5wURf4+/vTMzs5s3mWBXXIQXDKCGDBhVuQ48U7xg54YOHPAU0+PM4uKqJjvZzoV/Z6KYuA8T0HlACUpoiBxCRJll4XNaWZnpuv3R3dVV3X3pN2Z2V22Hl8r093VVe+u7q569/MOpRBCCCQkJCQkJCQkjhA4WlsACQkJCQkJCYl4Qio3EhISEhISEkcUpHIjISEhISEhcURBKjcSEhISEhISRxSkciMhISEhISFxREEqNxISEhISEhJHFKRyIyEhISEhIXFEIaW1BUg2VFXFgQMHkJWVBUVRWlscCQkJCQkJiShACEFtbS26d+8OhyM8N9PhlJsDBw6gV69erS2GhISEhISERDOwb98+9OzZM2yZDqfcZGVlAdA6Jzs7u5WlkZCQkJCQkIgGNTU16NWrF5vHw6HDKTfUFJWdnS2VGwkJCQkJiXaGaFxKpEOxhISEhISExBEFqdxISEhISEhIHFGQyo2EhISEhITEEYUO53MjISEhAQDBYBB+v7+1xZCQkOCQmpoaMcw7GkjlRkJCokOBEILS0lJUVVW1tigSEhImOBwO9OvXD6mpqS2qRyo3EhISHQpUsenatSvS09NlMk8JiTYCmmS3pKQEvXv3btG7KZUbCQmJDoNgMMgUm/z8/NYWR0JCwoQuXbrgwIEDCAQCcLlcza5HOhRLSEh0GFAfm/T09FaWREJCwg7UHBUMBltUj1RuJCQkOhykKUpCom0iXu+mVG4kJCQkJCQkjii0qnLz0EMPQVEU4W/QoEFhz5k/fz4GDRoEj8eD4cOH44svvkiStBISEhISEhLtAa3O3AwdOhQlJSXsb/ny5SHLrly5ElOmTMG0adPw888/Y9KkSZg0aRI2btyYRIklJCQkJABg7ty5yM3NbW0x0LdvXzz33HNsW1EULFiwICltv/HGGzj33HOT0lYobN68GT179kR9fX2rytGW0OrKTUpKCgoLC9lf586dQ5Z9/vnncf755+Ovf/0rBg8ejJkzZ2L06NF46aWXkiixRKtDVbU/CYkOADO7bf576KGHWlvENoeSkhKMHz8+4e14vV7cf//9ePDBB9k+3iLhdDrRq1cvXHfddaioqEiYHEOGDMGJJ56IZ555JmFttDe0unKzfft2dO/eHf3798fll1+OvXv3hiy7atUqnH322cK+8847D6tWrQp5js/nQ01NjfAn0Y5BCLBnhfZHSGtLIyGRcPDM9nPPPYfs7Gxh31133cXKEkIQCARaUdq2gcLCQrjd7oS389FHHyE7Oxsnn3yysJ9aJPbu3Yu33noLCxcuxI033phQWa6++mq8/PLL8v7raFXl5oQTTsDcuXOxcOFCvPzyy9i1axdOPfVU1NbW2pYvLS1FQUGBsK+goAClpaUh25g1axZycnLYX69eveJ6DRJJBlGBpjrtT21ZqKCEBEVQJUn/ixY8s52TkwNFUdj21q1bkZWVhS+//BLHHnss3G43li9fDlVVMWvWLPTr1w9paWkYOXIkPvroI6HejRs3Yvz48cjMzERBQQGuuOIKHD58OKwsc+fORe/evZGeno6LLroI5eXlljL//ve/MXr0aHg8HvTv3x8PP/ywMOFWVVXh+uuvR0FBATweD4YNG4bPP/+cHf/4448xdOhQuN1u9O3bF3PmzBHqLysrw8SJE5GWloZ+/frh3XfftcjAm6V2794NRVHwySef4IwzzkB6ejpGjhxp+Sh+/fXX0atXL3ZtzzzzTEST27x58zBx4kTLfmqR6NGjB84++2xccskl+Prrr9nxYDCIadOmsftTVFSE559/nh3fuHEjHA4HDh06BACoqKiAw+HA//3f/7Eyjz76KE455RS2fc4556CiogLLli0LK3NHQasm8eNpwxEjRuCEE05Anz598OGHH2LatGlxaWPGjBm444472HZNTY1UcNozJFsjEWcEVYIlW8uS3u4Zg7rC6YhP2Ovf/vY3PP300+jfvz/y8vIwa9Ys/Otf/8Irr7yCgQMH4ttvv8Wf/vQndOnSBePGjUNVVRXOPPNM/PnPf8azzz6LxsZG3HPPPZg8eTL+97//2bbx/fffY9q0aZg1axYmTZqEhQsXCuYYAPjuu+8wdepUvPDCCzj11FOxc+dOXHfddQCABx98EKqqYvz48aitrcW//vUvHHXUUdi8eTOcTicAYO3atZg8eTIeeughXHrppVi5ciVuuukm5Ofn46qrrgIAXHXVVThw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tpw3adIk4nQ6yT333EMIISQYDJK8vDzidDrJwoULhbK7du0iiqKQ3bt3h5W5rSPcOxrL/N3qeW4kJGIDCfFbQkKCYubMmbj//vsxa9YsDB48GOeffz7++9//ol+/fgDA2INgMIhzzz0Xw4cPx+23347c3FyBLedx4okn4vXXX8fzzz+PkSNH4quvvsJ9990nlDnvvPPw+eef46uvvsJxxx2HE088Ec8++yz69OnDynz88cc47rjjMGXKFAwZMgR33303WwF69OjR+PDDDzFv3jwMGzYMDzzwAB555BEWKQUAb731Frp3745x48bhD3/4A6677jp07doyn6mTTz4Zr7zyCp555hmMHDkSCxcuxF/+8hdbfxoe06ZNwxdffIHq6uqIbfzlL3/BP//5T+zbtw/XX389/vCHP+DSSy/FCSecgPLycoHFoRg3bhyCwSBjaRwOB0477TQoimLxt3n//fdx7rnnCn3dkaEQ0rG4/ZqaGuTk5KC6uhrZ2dmtLY5ErPB7gV+XaL+POhNIkZFwEtHD6/Vi165d6NevX8SJS6Jj49prr8XWrVvx3XffhS13ySWXYPTo0ZgxY0aSJLOiqakJAwcOxHvvvWdRetobwr2jsczfkrmRaL/oWHq5hIREAvH0009j/fr12LFjB1588UW8/fbbLKQ9HJ566inbqLNkYu/evfj73//e7hWbeKJNhYJLSESGVGgkJCTijx9++AFPPvkkamtr0b9/f7zwwgv485//HPG8vn37WsK8k40BAwaEdOLuqJDKjYSEhIREh8eHH37Y2iJIxBHSLCXRvkCkQ7GEhISERHhI5UZCQkJCQkLiiIJUbiTaGSRbIyEhISERHlK5kWi/kNFSEhISEhI2kMqNRPuCVGgkJCQkJCJAKjcS7RhS0ZGQALSFIBcsWJDQNnbv3g1FUbBu3bqEthMJV111FSZNmsS26QKTyUBxcTEKCwtRW1ublPbs0NTUhL59++LHH39sNRnaA6RyI9HOIBUaiY4H84RuRklJCcaPHx9VXclQhJKJTz75hK22nWjMmDEDt956K7KysgAAS5cuhaIo7K9Lly644IILsGHDhoTJkJqairvuugv33HNPwto4EiCVG4n2BWmWkpCwoLCwEG53x1yKpFOnTkzZSCT27t2Lzz//XFjniqK4uBglJSVYtGgRfD4fJkyYgKampoTJcvnll2P58uXYtGlTwtpo75DKjUT7hVR0JCQAiGxMU1MTbrnlFnTr1g0ejwd9+vTBrFmzAGjZdAHgoosugqIobNsOP/zwA0aNGgWPx4MxY8bg559/tpTZuHEjxo8fj8zMTBQUFOCKK67A4cOH2XFVVfHkk09iwIABcLvd6N27Nx577DF2fMOGDTjzzDORlpaG/Px8XHfddairq2PHg8Eg7rjjDuTm5iI/Px933303zMshms1Sffv2xeOPP45rrrkGWVlZ6N27N1577TXhnJUrV+KYY45h17ZgwYKIJrcPP/wQI0eORI8ePSzHunbtisLCQowePRq333479u3bh61bt7LjzzzzDIYPH46MjAz06tULN910E7tOQgi6dOmCjz76iJU/5phj0K1bN7a9fPlyuN1uNDQ0AADy8vJw8sknY968eSHl7eiQyo2EhISEGkz+X4Lwwgsv4LPPPsOHH36I4uJivPvuu0yJWbNmDQBtZe2SkhK2bUZdXR1+97vfYciQIVi7di0eeugh3HXXXUKZqqoqnHnmmRg1ahR+/PFHLFy4EAcPHsTkyZNZmRkzZuCJJ57A/fffj82bN+O9995DQUEBAKC+vh7nnXce8vLysGbNGsyfPx/ffPMNbrnlFnb+nDlzMHfuXLz55ptYvnw5Kioq8Omnn0bsgzlz5jCF7KabbsKNN96I4uJiANriixMnTsTw4cPx008/YebMmVGZeL777juMGTMmbJnq6mqmcKSmprL9DocDL7zwAjZt2oS3334b//vf/3D33XcD0BTT0047DUuXLgUAVFZWYsuWLWhsbGQK0rJly3DcccchPT2d1Xn88cdHXNSzI0MuvyDRziAzFEvEGWoQ2P5V8tsdeC7gcMa92r1792LgwIE45ZRToCgK+vTpw4516dIFAJCbm4vCwsKQdbz33ntQVRVvvPEGPB4Phg4div379+PGG29kZV566SWMGjUKjz/+ONv35ptvolevXti2bRu6deuG559/Hi+99BJbgPKoo47CKaecwtrwer145513kJGRweqcOHEiZs+ejYKCAjz33HOYMWMG/vCHPwAAXnnlFSxatChiH1xwwQW46aabAAD33HMPnn32WSxZsgRFRUV47733oCgKXn/9dXg8HgwZMgS//fYbrr322rB17tmzJ6Ry07NnTwCawgYAv//97zFo0CB23MwsPfroo7jh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b2Pnzp346aef8OKLL+Ltt98GoEWpVlRUYMqUKVizZg127tyJRYsW4eqrrw45+d12221YuHAhnn76aWzfvh0vvfQSFi5cKJR54IEH8M477+Dhhx/Gpk2bsGXLFsybNw/33XcfAGDcuHE47bTT8Mc//hFff/01du3ahS+//JLVc+edd2Lx4sWYOXMmtm3bhrfffhsvvfQS7rrrLgCaEnL++efj+uuvx/fff4+1a9fiz3/+c4sZoVtvvRVffPEFnnnmGWzfvh2vvvoqvvzyS8aehMJ5552H5cuXC/tOP/10vPrqq1i7di12796NL774An//+99xxhlntMgtIlLfDBw4EBdeeCGuvfZaLF++HOvXr8ef/vQn9OjRAxdeeCEALUqrrq4OixcvxuHDh6M2DV1++eXo3LkzLrzwQnz33XfYtWsXli5dittuuw379+8HAEyfPh1PPPEEFixYgK1bt+Kmm26yVTq/++675CQ9jOiVc4QhFockiTaIqn2GQ3HtwdaWRqKdIZyzYntAKIfiyspKoZyqquS5554jRUVFxOVykS5dupDzzjuPLFu2jJXZtm0bueiii0hubi5JS0sjgwYNIrfffnvYKK433niD9OzZk6SlpZGJEyeSp59+2uKgunDhQhbBlJ2dTY4//njy2muvsePl5eXk6quvJvn5+cTj8ZBhw4aRzz//nB3/6KOPyJAhQ4jL5SK9e/cmTz31lFB/SUkJmTBhAnG73aR3797knXfeIX369InoUPzzzz+z49QZeMmSJWzfa6+9Rnr06EHS0tLIpEmTyKOPPkoKCwtD9gUhmmNyWloaqaqqYvsef/xxMnbsWNKpUyfi8XhI//79yW233UYOHz7MypjlNcscSu5IfVNRUUGuuOIKkpOTQ9LS0sh5551Htm3bJpS54YYbSH5+PgFAHnzwwZDyjBw5kh0nROv3qVOnks6dOxO320369+9Prr32WjaX+v1+Mn36dJKdnU1yc3PJHXfcQaZOnSo4FDc2NpKcnByyatWqkH0aL4dihZCO5cRQU1ODnJwcVFdXS+fi9oiqfcDBjdrv7qOBrILWlUeiXcHr9WLXrl3o16+fXLpFIiyuvfZabN26Fd99913YcpdccglGjx6NGTNmJEmy9ouXX34Zn376Kb766quQZcK9o7HM323aLCUhISEhIZEMPP300ywqiJrwrrzyyojnPfXUU0KWaInQcLlcePHFF5PS1pHjRSfRQdChiEYJCYkk4YcffsCTTz6J2tpa9O/fHy+88EJUwSp9+/bFrbfemgQJ2z+SGfwjlRuJdgyp6EhISMQHH374YWuLIBFHSLOURPtCx3IRk5CQkJBoBqRyI9HOwCk3UtGRkJCQkLCBVG4kJCQkJCQkjihI5UaifUFgayRzIyEhISFhhVRuJCQkJCQkJI4oSOVGop1BsjUSEhISEuEhlRuJ9gvpUCwhAUBb/HPBggUJbWP37t1QFAXr1q1LaDuRcNVVV2HSpEls+/TTT8ftt9+elLaLi4tRWFiI2trapLSXCJj7L16YO3cucnNz2fYrr7yCiRMnxr2daCGVG4n2BanQSHRARJqQSkpKMH78+KjqSoYilEx88sknmDlzZlLamjFjBm699VZkZWWxfa+//jpGjhyJzMxM5ObmYtSoUZg1a1ZS5AmH1lZGr7nmGvz0008Rl69IFGQSP4l2DKnoSEgAQGFhYWuL0Gro1KlTUtrZu3cvPv/8c2H5gDfffBO33347XnjhBYwbNw4+nw+//PILNm7cmBSZ2jJSU1Nx2WWX4YUXXsCpp56a9PYlcyMhISHRzsGzMU1NTbjlllvQrVs3eDwe9OnThzEJffv2BQBcdNFFUBSFbdvhhx9+wKhRo+DxeDBmzBj8/PPPljIbN27E+PHjkZmZiYKCAlxxxRU4fPgwO66qKp588kkMGDAAbrcbvXv3xmOPPcaOb9iwAWeeeSbS0tKQn5+P6667DnV1dex4MBjEHXfcgdzcXOTn5+Puu++Gea1ns1mqb9++ePzxx3HNNdcgKysLvXv3xmuvvSacs3LlShxzzDHs2hYsWBCR5fjwww8xcuRI9OjRg+377LPPMHnyZEybNg0DBgzA0KFDMWXKFOEaKev2+OOPo6CgALm5uXjkkUcQCATw17/+FZ06dULPnj3x1ltvCe1F6htVVfHII4+gZ8+ecLvdOOaYY7Bw4UJ2vF+/fgCAUaNGQVEUnH766UL9Tz/9NLp164b8/HzcfPPN8Pv97JjP58Ndd92FHj16ICMjAyeccAKWLl0qnD937lz07t0b6enpuOiii1BeXm7ps4kTJ+Kzzz5DY2NjyH5NFKRyIyEh0bFBCNBUn/y/BJlYX3jhBXz22Wf48MMPUVxcjHfffZcpMWvWrAEAvPXWWygpKWHbZtTV1eF3v/sdhgwZgrVr1+Khhx7CXXfdJZSpqqrCmWeeiVGjRuHHH3/EwoULcfDgQUyePJmVmTFjBp544gncf//92Lx5M9577z0UFBQAAOrr63HeeechLy8Pa9aswfz58/HNN9/glltuYefPmTMHc+fOxZtvvonly5ejoqICn376acQ+mDNnDlPIbrrpJtx4440oLi4GoK0sPXHiRAwfPhw//fQTZs6ciXvuuSdind999x3GjBkj7CssLMTq1auxZ8+esOf+73//w4EDB/Dtt9/imWeewYMPPojf/e53yMvLw/fff48bbrgB119/Pfbv3x913zz//POYM2cOnn76afzyyy8477zz8Pvf/x7bt28HoCmnAPDNN9+gpKQEn3zyCTt3yZIl2LlzJ5YsWYK3334bc+fOxdy5c9nxW265BatWrcK8efPwyy+/4JJLLsH555/P6v7+++8xbdo03HLLLVi3bh3OOOMMPProo5brHjNmDAKBAL7//vuI/Rt3kA6G6upqAoBUV1e3tigSzcGh7YRs/UL7q9zb2tJItDM0NjaSzZs3k8bGRmOnr46QB7OT/+eri1ruK6+8klx44YUhjwMgn376KSGEkFtvvZWceeaZRFXViGVD4dVXXyX5+flCP7388ssEAPn5558JIYTMnDmTnHvuucJ5+/btIwBIcXExqampIW63m7z++uu2bbz22mskLy+P1NUZ/fDf//6XOBwOUlpaSgghpFu3buTJJ59kx/1+P+nZs6fQF+PGjSPTp09n23369CF/+tOf2LaqqqRr167k5ZdfZtdhvrbXX39duDY7jBw5kjzyyCPCvgMHDpATTzyRACBHH300ufLKK8kHH3xAgsEgK3PllVeSPn36CPuKiorIqaeeyrYDgQDJyMgg77//ftR90717d/LYY48J8hx33HHkpptuIoQQsmvXLttrovIEAgG275JLLiGXXnopIYSQPXv2EKfTSX777TfhvLPOOovMmDGDEELIlClTyAUXXCAcv/TSS0lOTo6l3/Ly8sjcuXMt+0PB9h3VEcv8LZkbiXYG6WcjIREOV111FdatW4eioiLcdttt+Oqrr2KuY8uWLRgxYgQ8Hg/bN3bsWKHM+vXrsWTJEmRmZrK/QYMGAQB27tyJLVu2wOfz4ayzzgrZxsiRI5GRkcH2nXzyyVBVFcXFxaiurkZJSQlOOOEEdjwlJcXCnthhxIgR7LeiKCgsLERZWRkALeLJfG3HH398xDobGxuFcwCgW7duWLVqFTZs2IDp06cjEAjgyiuvxPnnnw9VVVm5oUOHwuEwptuCggIMHz6cbTudTuTn5zMZI/VNTU0NDhw4gJNPPlmQ5+STT8aWLVsiXsvQoUPhdDqF66Btb9iwAcFgEEcffbRwb5ctW4adO3cy+fj7AlifD4q0tDQ0NDRElCnekA7FEu0YUtGRiANc6cDfD7ROuwnA6NGjsWvXLnz55Zf45ptvMHnyZJx99tn46KOP4tpOXV0dJk6ciNmzZ1uOdevWDb/++mtc24sFLpdL2FYURVA2moPOnTujsrLS9tiwYcMwbNgw3HTTTbjhhhtw6qmnYtmyZTjjjDNCypMIGaNFuLbr6urgdDqxdu1aQQECgMzMzJjbqqioQJcuXZovbDMhmRuJ9gUZCi4RbygKkJqR/D9FSdglZWdn49JLL8Xrr7+ODz74AB9//DEqKioAaBNbMBgMe/7gwYPxyy+/wOv1sn2rV68WyowePRqbNm1C3759MWDAAOEvIyMDAwcORFpaGhYvXhyyjfXr16O+vp7tW7FiBRwOB4qKipCTk4Nu3boJ/hqBQABr166NuT94FBUVYcOGDfD5fGxfKN8jHqNGjcLmzZsjlhsyZAgACNcVKyL1TXZ2Nrp3744VK1YI561YsYK1n5qaCgAR77UZo0aNQjAYRFlZmeW+0qi8wYMHW/xozM8HoDF4Xq8Xo0aNikmGeEAqNxISEhLtANXV1Vi3bp3wt2/fPku5Z555Bu+//z62bt2Kbdu2Yf78+SgsLGQJ1vr27YvFixejtLQ0JBNx2WWXQVEUXHvttdi8eTO++OILPP3000KZm2++GRUVFZgyZQrWrFmDnTt3YtGiRbj66qsRDAbh8Xhwzz334O6778Y777yDnTt3YvXq1XjjjTcAAJdffjk8Hg+uvPJKbNy4EUuWLMGtt96KK664gjkdT58+HU888QQWLFiArVu34qabbkJVVVWL+vGyyy6Dqqq47rrrsGXLFixatIhdmxJG4TzvvPOwatUqQVm48cYbMXPmTKxYsQJ79uzB6tWrMXXqVHTp0iWkmSYaRNM3f/3rXzF79mx88MEHKC4uxt/+9jesW7cO06dPBwB07doVaWlpzNG7uro6qraPPvpoXH755Zg6dSo++eQT7Nq1Cz/88ANmzZqF//73vwCA2267DQsXLsTTTz+N7du346WXXhIitSi+++479O/fH0cddVSz+6K5kMqNRDsDx9xIFkeiA2Hp0qUYNWqU8Pfwww9bymVlZeHJJ5/EmDFjcNxxx2H37t344osvmM/HnDlz8PXXX6NXr14hv6gzMzPxn//8Bxs2bMCoUaNw7733WsxPlDkIBoM499xzMXz4cNx+++3Izc1lbd1///2488478cADD2Dw4MG49NJLmW9Heno6Fi1ahIqKChx33HG4+OKLcdZZZ+Gll15ibdx555244oorcOWVV2Ls2LHIysrCRRdd1KJ+zM7Oxn/+8x+sW7cOxxxzDO6991488MADAGDxqeExfvx4pKSk4JtvvmH7zj77bKxevRqXXHIJjj76aPzxj3+Ex+PB4sWLkZ+f32wZo+mb2267DXfccQfuvPNODB8+HAsXLsRnn32GgQMHAtD8k1544QW8+uqr6N69Oy688MKo23/rrbcwdepU3HnnnSgqKsKkSZOwZs0a9O7dGwBw4okn4vXXX8fzzz+PkSNH4quvvsJ9991nqef999/Htdde2+x+aAkUQjrWDFFTU4OcnBxUV1cjOzu7tcWRiBWHioEK3ZbfdQiQ16d15ZFoV/B6vdi1axf69esXdiKT6Fh49913cfXVV6O6uhppaWkhy/3jH//AZ599hkWLFiVRuvaJTZs24cwzz8S2bduQk5MT9Xnh3tFY5m/pUCzRviDo4h1KL5eQkIgT3nnnHfTv3x89evTA+vXrcc8992Dy5MlhFRsAuP7661FVVYXa2lphCQYJK0pKSvDOO+/EpNjEE1K5kZCQkJDoUCgtLcUDDzyA0tJSdOvWDZdccomQVTgUUlJScO+99yZBwvaPs88+u1Xbl8qNRDuD9LmRkJBoGe6++27cfffdrS2GRAIhHYolJCQkJCQkjihI5UaifUGyNRJxQAeLo5CQaDeI17splRuJdgw5QUnEBpqZtTXSwUtISERGU1MTAFiyI8cK6XMj0c4gFRqJ5sPpdCI3N1fItRIucZuEhETyoKoqDh06hPT0dKSktEw9kcqNRPsCkQ7FEi0DTSFPFRwJCYm2A4fDgd69e7f4o0MqNxISEh0KiqKgW7du6Nq1K/x+f2uLIyEhwSE1NVVYQb25aDPKzRNPPIEZM2Zg+vTpeO6550KWmz9/Pu6//37s3r0bAwcOxOzZs3HBBRckT1CJVoZkayTiA6fT2WK7voSERNtEm3AoXrNmDV599VWMGDEibLmVK1diypQpmDZtGn7++WdMmjQJkyZNwsaNG5MkqYSEhISEhERbR6srN3V1dbj88svx+uuvIy8vL2zZ559/Hueffz7++te/YvDgwZg5cyZGjx4tLCbWlhBUY2QZVHFp+rDnq7EtY99cqCqJGJoXCKrw+oNoCqgJlyeoJr6Ntg7zc8Fv2z0zhBCoIZ6lUMdifnbjhES2K9StqoCqxu8di6JsPK5NVUPfS4kWIklj6hEPNQg0NQABX6uK0erKzc0334wJEyZElap51apVlnJ0GfpQ8Pl8qKmpEf6SgV2H67FsWxmqG6K06TfVAzsWAwc3AwC2HazFsm1laGgKWMse3gHs+AZorIqfwDYIBFV8t+Mw1u0L3U69L4Bvtx/C8u2H8e22Qyir8SZMni0lNfhpT2VSlKi2iupGP5ZtK8POQ3UAgI2/VePb7YfgCwTR0BTAt9sOobi0Vjhnze5KrP613FZJ/XlfFZbvOIxA0OjTfRUNWFpchvK65A5OJdWNWFpclpBn6ECVXnetV3NE37MCTb9+h2+Ly7D5gM2YEPQDO5cAv62NXHnVPmD710BdaAfl7fr7XOezeZ+jBCEEq38txw+7K5pdh0QINFRoY2r5ztaWpP2j/jCwaxnw20+tKkarKjfz5s3DTz/9hFmzZkVVvrS0FAUFBcK+goIClJaWhjxn1qxZyMnJYX+9evVqkczRorrRD1UFarxRKje+OoAEAW+1cH6d12Yw9FYDRAV8tdZjcUSjPwh/QEV1Y+hrqPMFwJMpUV9vM6D1CYE3oH9hdcBoKdrfNfo9qWn0IxgkaPAFUecLIKgS4X4RQlDT6EdDUxBNQatSWNPoR1NAhY9TGKsb/SAEqLV79hKImsYACAFqEtAuvaaaxoD+ZVkHb3011GDA/pltqgdUP3sfw8JbDYCELVvjDfM+Rwl/kKChKYg6b0CyN/GGr0YbU6O53xLRoZVTLLSacrNv3z5Mnz4d7777rmVZ83hixowZqK6uZn/79u1LWFs8VH3ijX3+1U6gg5f9GEZM/yYGtO1wrZivL5FjLm1L7YBKDYX5ubDrb75/InWV3ZNEorjviQBJ4HNt1w9aP5EQfUQ7IRpZIpcx+rT51ybc12bXIiGRaLSNp7PVoqXWrl2LsrIyjB49mu0LBoP49ttv8dJLL8Hn81kiGQoLC3Hw4EFh38GDB1neCju43W643e74Ch8FYh/MxMFUjWYiT/AkT5iCFrod8/UlUvHQ2uIno7bxEiUT7Lliz4l+j9j/Qj8WtvtN9Ql1JlmJJBHkbwmM55LAuGj6j02DQvkIiEJweiReyr92b2TywbghlvstER6sLzsoc3PWWWdhw4YNWLduHfsbM2YMLr/8cqxbt842RHPs2LFYvHixsO/rr7/G2LFjkyV21CAmJSWKE+gP/f/cpBWhbKIQzWRjPpbQ+VCOP5bngv1LiPAbpuPR1mdXd7KQDMbIkgOSkAjUZFS1Rt1uS8xJkrmRaB/Qn85WNku1GnOTlZWFYcOGCfsyMjKQn5/P9k+dOhU9evRgPjnTp0/HuHHjMGfOHEyYMAHz5s3Djz/+iNdeey3p8kdCVMyLHUzmrLCDYYK/rHnTGiEkqoyRCTcZEQKV+93RoJqeC7v+VoUJPHwf2SmwrW32SyRzQ7gG4u+WHoa5abaZ2oB0s0kkWskWeySiozM30WDv3r0oKSlh2yeddBLee+89vPbaaxg5ciQ++ugjLFiwwKIktQXEPpiJ38vhfXaS820tTpL2Zcy7EzkvhuGyOgyESRrccwZ7U2hE5sbmUUqkeSisLCbWMp5QQ1yTEqq15pilwhVh/zb/2gRGrmO/BvGH7NA4ooMzN3ZYunRp2G0AuOSSS3DJJZckR6AWwBhMW8bchB0ME+1zw7WtEgKHjSZuvr6EKjdxoPbbO8xO1faOstbyocqyY7xC1Er+B4lUqgwlkIB9QKgEIHF0KI6ibEseXeG+dnAlP3GQ/Ro/SObmiAT/RR3lCcImnbxsB8MkfWWIporIZbRyiZONgECx9Q7pOOAZQcJNzJrrCBHKRFuXGaFYjvaMsNbdljrdRMPcNPdjR6hDMjcS7QBt5OGUyk2CQG9v7JO9vdnBvvbEQvjqj7LNZEjWkb9ajecijKkwxH0z91soVidmxTxOSApzw9nvrNF3NsJEV7vpX7sSYT5Wom2l4z72yYPs5DiAmqVaVwqp3CQIjHmJ2mtRHNmjirZKkkNxuKaSytzoExPrkw44EBmMHjFFzxiTdLR5bkJxYK1l9Uukz43dI6NdZ6jW4qxpxYG5aW1H7yMasm/jB+lQfGQjKp8ZuxOYPwDdbXN+knwi+ME00sBKfccSmRslPJvVMUCfC5VYn6xIOl9YRUdQiDiWoxWQkGgpVWRraENKxM6KxixlPidy0eZAUEY77iuQYMiObTkocyOVmyMSzc9QbJpowheMvfKY5IjcFJ1iHQ4l4SJZzSUdbyDi89IICqeZQVMjP3+hlERjWk9u/yY+0s7E3OhHIpp+IwoWvVLTEvbFzNRJxBOyP+MGydwc2bAzEUR7orB4cRvxuQl1HXS3Q9fSE7r8guVHxwPvmBqNySlcWHhos1TrMDeJbE6109TFf0zCxKDcRMHysPGgBcl1YhFJopmQHXvEQCo3CYIRuRL9GexM3hwUdjBMnlkqVEt0v07cJMEvoGN/s4qJFY39BCITY3cfwoXt2879yVZuEqhUiXWaGMB4tRdG8Hj4E8l5N4FIkqm/Y0CapY5o8L4RUYH7moyYzyJJs4/wZR/hi9OpJN4sZXHK7ICjPX/pQZPjsB3TFp7dsTdztJbjaiLNYXb9QfROs28vFK9lhyjMUnF4ZOXyCxLtAtIsdeQilrV9bM6OItolOV8Z0TgU02tVmHKTOJkINAfQDpzDT7gPwTAdYbK8WH7zZcwHY3aGjzMSydwQGFqgSmDKmxRCiHiYpaKsKmwzQpMd+CVICDruB1PCIJmbIw+xrO3DlaQniHtb8V0L469q2e+kDsVJkKcjG6b4Kw+XqZn3zYm13thNqvGBnUIWL9gyN3rkVPgPiGgkioa5oQpV86+Ov98d9w2QaD+Qys0RB5HxaOn54ewKCTZLRcXcaP8mw+dGq5okwFmi/YC/J4JZytQXdgpgtLemJU6vLUMiWT+bLQLNLGVrlYpBlhhsTi15P6RDcQIhfW7ihzbycErlJgFo1iDEvVwRo5SS9CJGjtoyZKCh4Ik3GXV0sxT3m/+SJzA9N/r+MHXZOxFHMokmDrGyTbHVrTM3Nu1FbDOiPFEwN1GXDFdHFFSqRDMhOzR+0PtSmqWOPMSS/M4CYs48a1uIlU0kohlMDeYmsT434ZMZdhzwlxwIa5ayMS2Zits5FLfm4oyJVNkFxYlTdKjPjfVRisEsFc3HRhwUN7lwZhLQAceUuEM6FHcMRK/cGANk9D47CWZuOPNEJLbEwTIUJ0YWY/4gCTV9tXWEcijWvUe4ctwB9jOcMmStv7UQbxGEBUa5/dq1RtDaYxEoTLl4+DG1hXtzxEKapeIIydwcsQiXOTYqRBpX4xFXGgWiyYhK9zLmJkGDQ/jWOw6iZQUNM0xkhUYrZ7OvlcxS8b6v1muyXri1xRiYmxjkjdfCmVLPkWizkMzNkQs734dYTlI5yiT8+ckb4ULJYTZLJcoZlYWcI1S6/A6CEGYpc8Zi5nMT2VIioDVzqSQqiZ+oBIp9BsaomG12MWgSUQgcD2asZSkmJMJD9mj8IJmbIxYtXQNGJbxyY0vdNEesZsjBK1yhuBNtPw0FD1c2bnIltPa2jVAOxYDZWdaGi7DM3+aJPvTxZCBRrVkeRzvn4ha1ENmkEQ+yNdL9lYgDZL/GEVK5OeIgRhnFfn7UESuJdiiOonpzKDiQIIdQu40OOBDxyrI5QzEPu2gpyxzP/7ZhFpLP3CSmXcFxmjNLERImiV9zHIpDPI+RlMhoIX1uEgjpcxM/tJHnVCo3CUA0+WFsTuLOUbndNucnLRQ88nUw5YZnbhISymv8kKHgGswZikWzRQhzi1A+fP3JRqKSB4ZygVOJcdDSZhwdXJplprYBb/LtwK9AgiB7NH6QZqkjFuHCb6OCSux+Rmgo/oiFgXJwD3IixBK/vjvuV5ZoKgxdzo4FiUbRac08N/EIl7aDZTkToXOoiSrsixahheifxxYtnGlhoCTiDtmxLYd0KD5y0bw8N/YKTfhF/RL9Ikam06l8CgxFPaHMTQcHfx8CKs/wmVmJKFiQiMxN63R63M1SAgljZrfiwNxEOG5hi5oJEnFckJBoC5DMzRELO1+GWCA6FLdcnuYiGuaGcM+xIwkrg2vRUqbGOxBEE0cUTAyvoJrLwDzRty5zk6jmQvkREQIoIS8yFmlsaDKhncgfCdGgxSkmJEKjA7PBRyqkcpMAmCedqKKHQgyAYX1uEvweinKHb0yBwljIxH5Vkg771WoO9w4KPhhRLNthqc/6uzXnz3hEFNnWG3J/GEUuFttyDMxNi6KlpG6TQMgejRvayEenVG4SAdO9jdVMo5rMDVE3FGfEQqfzzE0i2KY4+ne2W5ivOxDG6cbuQ9QSCm7zuzUjchh7FOfnmvBKIAHriOgtxrGblkOhRauCd9QHP5mQfRwHSLPUEQvz5B7d62L/FRk2z03CHYqJ7W9BEm63sQRDAnxuuGtWk+Zz1LZgZQSN33yIs7EdvofsGMJ4sQwtQpzbDZV3SvC5CR8oH6GFCMxNnBTzNnFvjlTIDo0fpEPxkQvLJBTzixOBuSGWH4lBFIMyPykoSA5z08F0GgbzZQfDPFd2DsVhl2Iwnaedm9yOTpS11eqrwvVNPELBma4d4gPAdEXNTXJpF+ovEW/Ifm05JHNzxCKs+T7kSRxLosZnMGwpRIfi8MyNZpai+xIpL+mwH1nhfLm4eZptR4Kt3tyKfh2Jai9UveGvNRZpomduYq2Zh7igbjMrkQgB2aHxh1RujjhY0uJH9d6E/mIOOfAm0SwVmrnRoCicQ3EimBvTb0JIhxvhzZdrSeLH/WbMDULP4BEdipPcvclYW4pwDRAYGYpbpJDHGGnTXN8Z6VCcBHSwMSUhaCN9KJWbBMB8b2N2KI7arJXYhygaG7+xoCXvUBx/ufiFM8PJcyQj3DVbFOIoFAViURlbvi5aS2CoCHFu10ZhMz5AQj7Y9r/DNRCFXxrQ/PdDOhQnEDEqqBLhIM1SRyzMg3OsrwsxRcFYBrVExcyaEEsywoRHS1m2ic3eIxuxTG52/ivhzk6Uv0tzEH/mhqtbf27YLhtHalj2tEwgy3jQzOpa0x9KQiJqsEdTKjdHHMyTe1STkpk6tz9kPhKLWDGDhJHJvF+BwhT1RHzxmz+sOuLQHlY5gficsIUzw5kWbcwcqmqzM1lI0L215LMhRq6kkExgTA7FsX31N1svaUWT4ZGPDjywxB2SucHLL7+MESNGIDs7G9nZ2Rg7diy+/PLLkOXnzp0LRVGEP4/Hk0SJo4NZmSFh1gDiShm/TCdYB7LkMDfiZBmZcnck0OcmnL9IR0GkjMT8JB7N8gt2h1rXoZjKHN+W7fS1cIqedUeUZqlQR83PbjN7tiMvGCvRjtBGQsFTYj2hvr4eTzzxBBYvXoyysjIh4RwA/Prrr1HX1bNnTzzxxBMYOHAgCCF4++23ceGFF+Lnn3/G0KFDbc/Jzs5GcXEx21ZaWTu0Q0sHM4tDcit8Tpiz4YaecPQvYMW4F4lxKBa/jknHs0pFqSTrZW36Jpx5xDBLhWF6EoxEtSdElekPDjFpOZZ3LFrmJopy5r3NVVLkwpkJBLH8kGgpWnlujlm5+fOf/4xly5bhiiuuQLdu3VqkXEycOFHYfuyxx/Dyyy9j9erVIZUbRVFQWFjY7DaTAbMiENVgJpgPzD43ocom7kUM5eYTqpwCQ09PrONjKB+JIx+RVq6OhmkLVR/9HXnR1sQhUX4/9ope8mAdDyRz0/YgOzd+aBt9GbNy8+WXX+K///0vTj755LgKEgwGMX/+fNTX12Ps2LEhy9XV1aFPnz5QVRWjR4/G448/HlIRAgCfzwefz8e2a2pq4iq3Hay6SGw3O+rBMIFKhDViK8IJSqKjpczbHY+6ac7kFo5YsDvWJiJy4iyCZfFQ4dkJZb6L0ixFoiwX6pQY0JqRbB0GbeH5b+9oI2apmH1u8vLy0KlTp7gJsGHDBmRmZsLtduOGG27Ap59+iiFDhtiWLSoqwptvvol///vf+Ne//gVVVXHSSSdh//79IeufNWsWcnJy2F+vXr3iJnsoxKwYABAGRpP5IfTAm0DmxrQd0ueG+60kIc8NXcW5Iw5B4ZRkQux9pKKdBO0C8JI5zicy+67d+q90H3Motgpk/9uCaBgyc9XNtktxdTSvCokQkB0aR9CXq50pNzNnzsQDDzyAhoaGuAhQVFSEdevW4fvvv8eNN96IK6+8Eps3b7YtO3bsWEydOhXHHHMMxo0bh08++QRdunTBq6++GrL+GTNmoLq6mv3t27cvLnKHg3k9w1gHM9U0HIY8P4nMTWSzlMKYm4QoNxZ5SIcbkGJhblQ7ZcVUxq66aCLkEoFE3kqr4kSMfczxOlzvRMncROF0DzTfvGRJRiiRAMiejR/agc/NqFGjBN+aHTt2oKCgAH379oXL5RLK/vTTTzEJkJqaigEDBgAAjj32WKxZswbPP/98WIWFwuVyYdSoUdixY0fIMm63G263OyaZWopm5bnhBi6zk7b45Zmcl8/eDGRXTtuvORRr+5Lic9MBx6CwzA3MDqeRGS47toSEOJ5oJPIRt1MmzGpCWOYmLKJQgqJ8l8K2ErWDv0TzIPszbmgjz2ZUys2kSZMSLIYBVVUFH5lwCAaD2LBhAy644IIESxUbrF9q0dzs0LR8pEilRMAa8RVeAs2hWAlbtkXyRNjuCGgOc8PDyn5Zf7cWOxA2H0+86zYpCvZtxs8GZFk4sxnVRfs+SrQQbWRibt9oG2apqJSbBx98MCGNz5gxA+PHj0fv3r1RW1uL9957D0uXLsWiRYsAAFOnTkWPHj0wa9YsAMAjjzyCE088EQMGDEBVVRWeeuop7NmzB3/+858TIl9z0TyfGw7hoqWS5BQR68rmiqLA4YiubHNgVMkzNx1rIAq7qjcxPxqhzC3hYTapthYIIXFL82D3+pifp+hrMB9qBgvTjOe2TTh6H8mQ/Rs/tBGH4pijpfr37481a9YgPz9f2F9VVYXRo0fHlOemrKwMU6dORUlJCXJycjBixAgsWrQI55xzDgBg7969cDgMt6DKykpce+21KC0tRV5eHo499lisXLkypANyayFak06ok6xfaclnbqJV0PhQ8IT63FhMfR1vMIpFSSamfwG759L6O9xCm4mEhZkj8fvws/qPqew6FbvrNgsUrUNxlD43zXk/7PpHIhGQHdtytCPmhsfu3bsRDAYt+30+X9ioJTu88cYbYY8vXbpU2H722Wfx7LPPxtRGayBaZ9yQ54ddVTw5zI11MA0xcHMllQhl4yIQYyTi30RbR3ifG5MyqsbWT0Z24NB1JhKJvJ92Dv4W5iacWaqFoeDmvc1hYazndMAXIKGQ/Rk3tDfm5rPPPmO/Fy1ahJycHLYdDAaxePFi9OvXL77StVM07yuLZ25U4blQ7T6xEwxzNtxIbj98huKkLJzZAaOlwl2uxSxl88tyjvDMaf+KizPGLmNz0dLFZmOpW9xH7NuL4zsXztcp+jrCb0vEEfGkDTsy2gtzQ52KFUXBlVdeKRxzuVzo27cv5syZE1fh2ivoYOZ0KAiqJOYvNZUQQDHOD316Ipkb8RpCfcUbOnpiF86kYOxQwlpou1BNz1U0ZXlEM0G2gh5t25b2DsXJ58bG4hQ/ZSEKs5RpuznMjXQoTjDMD75UblqAtvF0Rq3c0PDkfv36Yc2aNejcuXPChGrvoO+JIxblhi+jEsAR6vzk+ESo5msI4WjKM5AsQ3ECnFLtJ6O28RIlC+bnynzMjokJy/bY/G4rjqtxZW7Mz46qGvuiikSM1iwVZfvNuLi2cl8kJCKijTyrMfvc7Nq1KxFyHFGg806KQ4EfsQ/UlPlh57cCc6OaZAA0Pw6HQ/yiYY6ZirEqeEKipSKZEToA7O5JKBgOwty+sNFW9v0az6ilWBDPR8jiAweecaTXHUYDidahOCS7GQezlHm7I74ACYXs0PiB81VoRcSs3Lzwwgu2+xVFgcfjwYABA3DaaafB6XS2WLj2CjqYGtFD0bw4vJeE+Xy+WHLsBowl4B7QcK3xeW4SKY+x3fEGI9XmnlAQ2C+cGd5Ph3/mrPvo+ckYoxLqUGxrojMpy5Yi8WNuopEn1nM6YrRgQhGFY7hElGhvDsUUzz77LA4dOoSGhgbk5eUB0EK009PTkZmZibKyMvTv3x9LlixJyjpObRG8b4S23dLzo6HO4wtikoHK4TQ9sLxoicxQTEyNETvHiSMe1nsSCnZrS0Xjt2F+VpPVw4kM9bewHrwfWwjGqlnMTahycejTqB38JVoO2bktRNtgbmJeW+rxxx/Hcccdh+3bt6O8vBzl5eXYtm0bTjjhBDz//PPYu3cvCgsL8Ze//CUR8rYP6PeWTkIxEjdatBR/fqiCCYTKroGXy1qO6eiKwkxWiRsbOvago5qeKx6azw23ze0PBbv525qGIDl9nshoIAsbFVX6gigFiMbnxrTdLIfiOJi2JMJBdmj80c6Ym/vuuw8ff/wxjjrqKLZvwIABePrpp/HHP/4Rv/76K5588kn88Y9/jKug7QnmSSjmwUyN8vxEmqWYL40WBUVIeHpfgfEoJyZDsVin1kbHGpCI6bkKX9bmXoXdE4LBOAJg1Vtij2CMsqWo2m+OwpiI9AoSoSA7u0VoI5p3zMxNSUkJAoGAZX8gEEBpaSkAoHv37qitrW25dO0ULIw6poy9RiGVMjd2PjtJsg3z/h3RZB5W+GipBIglfW44c2UIutdufaaYmRsb59tkwEb/iBuiWjgznABROxRHh2Y5FEufm8SiA44niUM7NUudccYZuP766/Hzzz+zfT///DNuvPFGnHnmmQCADRs2dOiEfkYYNd2O4sWxmZjo+a3x3vGMDKVk7JOhGTCe5QQJbHaA7WADEnNUD/HWCmov0e6h3UrhYc9NoHkoHBI5eVszhhOjvaj82WLUEC01mVnH0NWFgsUXqmM9+smF7NyWgXVfO1Nu3njjDXTq1AnHHnss3G433G43xowZg06dOrHlFDIzMzt0Qj8jlNuhb0d/rqoSFp5KzxcHtuSMcny0VFhGhirpXBK/RDE3iuV7u2OB3pMUG+3G1h+KRGBubPZZHYqT5HOTyLptWJnEMDfRmaWal8SvIz7xyYTs37ijvYWCFxYW4uuvv8bWrVuxbds2AEBRURGKiopYmTPOOCN+ErZDGL4R+nYMLw7hsnA4o2F+EhSrS9vk89fY+3Hw5WgSv8QPFJooHWtAMj9XkRDJxGQ3f7eW42rSHYqZUk6MfaZSUVYeuUjsp1ggmZtkQnZuy9A2+i9m5YZi0KBBGDRoUDxlOWJgznMT3VxPjP+bzhfdbJo5CMcI2oyiGPlrbH0XuH2JXBqBV/rM7XYUmJ8rHuY8N1p5U5kwrAxVAFrNcdUiW/xg7QcSWVlojm9biGL2zvCxIZGh8hLomANKosD6sp0xN8FgEHPnzsXixYtRVlbGlmWg+N///hc34dorzFEtsfjc8OYX+/OT8wnHT6RhmRtOCTKUufjLJB2KjTsfKhTc/GzYKTzWc8S6WyvNv5Uxip8cdotymn1uwrbWQlnicSmSuUkiZOe2ENyk0IqIWbmZPn065s6diwkTJmDYsGGtkpq9LYM3ycSU50YH70wcXcbfRCk3uhwadSPIZgfe5yYRIvGMlt12R4A5uWMkEGKe2EObnIy5vnXMUomEVTFQo3hEo2RumsHwSJ+btgjZv3FDe2Vu5s2bhw8//BAXXHBBIuRp9+BfEUO5iebFEb8gRQfd1njxtDbDMTLm61ISGgqeuC/79gIzIygcg1URUUl45kY832AO7fYnGtZ241m3HeNI9xH7Ms1yKI4OzXk/Etk/EmieGVIiBNoGcxNztFRqaioGDBiQCFmOCPAKAMtTE1MNBCBEUyrslm9IpOclB4O5Ce07JPjbJHzhzNBtdxSwJTGiHDQ05kbcFo7zRwn0EGlrHclAIu9vOH8aJaRZqhnMTQih4xMtZd7ugC+ARDtDO1Nu7rzzTjz//PPy5QoBfuBiykk0n2qCQ6e2ErN9xl/LSN1cUaMRB+AYpHBf8QoM5iaRT4Zo+eoYz+DjX2zBlNdWwxdQcajWh8v++T1W7jwslCHEenciTaLhFJlkf3RZmZP41FtS3YgHP9uEZdsOGc8x4RT1KEyuLQUfUdjctvjoRa1OifgiWqZOIixacxAxIWaz1PLly7FkyRJ8+eWXGDp0KFwul3D8k08+iZtw7RG8z0xzMvYSouW54RmT8Kx4opgbrV6HEApuapr7rXCOx4lyKFZA2FIQHWn4ef+Hvaj1BjBhRCE2/laDHWV1cCoKTjqqc9jzNFMVEbbDlRUUc0VB0EZhShbi1fKqneXYW9GA5TsO48xBXRHUHx5ae0j3pWaZpcIzN6xPm/F+8A7+QTn5Jhiyf5uNNvRsxqzc5Obm4qKLLkqELEcEWPQQ5w4c3UDN+TwQEjpKKUkPDz+YKiGULF4uBbwylggZDXlUOkG0oRcpUSCEoM6nLXdSXudHVYMfAFDV0CSWg839UaMfps0Ko8OhIKg2byJuDhJllqppNPqLXROM6zKUm3CMaJRmqVBF9H+N9mOHkfWc3pdmVCIRGrJD4wThk7fVpACaody89dZbiZDjiIFdUrvo/IlFQ4u47EH4FhMBpqQZwVJRrzuUiHGCKn0tofbbIxqaguxaK+p9qNSVmsoGv8bycdSvXT6VcHqxcAzExNzQ/clBou4nVQyrG/1cI0a/OEI4Uod1VgpVMMJFMGazWR73kZQxibihowwuiUZ7cygGtEUyv/nmG7z66qtsgcwDBw6grq4ursK1R6hMKVCgxLK2lA7C+dzYZ/wNM0PFETyVHjpayvhtVubi/cVvmBGoX0/HGIDqfcYitRX1TYy5aQqqaGgKsmN23R3JLylUNmI+DUHyHIqjU5xjBVVuVALUebXfGkslKgvW9uLI3JgcwVuytlRsi/FKRA/ZoXGB8GC2M+Zmz549OP/887F37174fD6cc845yMrKwuzZs+Hz+fDKK68kQs52A95XhZmlonpv6FREAN23xGBMIp8Xb/AOjKHYEn5CUhQFisL5d5BEKO7ENOke+QNSnUW5McxRVQ1+ZLiNV9jcGxbmJkKeG96kGrLSRCGMybMlqPUa/VfZ6Eehyyk4X4d8R+Ppc0PbaoFibjCpiXfal5C923y0nb6LmbmZPn06xowZg8rKSqSlpbH9F110ERYvXhxX4dojomE8Ip2vEPF8MWQ3ScyN/i/PIIVqiiox/LIA8XYqpspMa66U3hoQlJuGJlTpPiQAmIlKg7VDwjFt5jMIQii0ycpzE2G7ueD7j/UXUUH0xOpOJVRL8btu2u/NSepJYU7g2FGe/6RB9md80J6jpb777jusXLkSqampwv6+ffvit99+i5tg7RX0i1MLjdb3RXcid364aKlETQMiBAYqRBQU75dDyyZKKttw2g4wwvOT84EqL3wBY7kTaqICRObF2Bn9fdDWW6L3PLrc2IlEvG6toNzUa8oN/+hEp8TFYJYKQ1m2JJqQfx8lEowOMK4kDm1HuYmZuVFVFcFg0LJ///79yMrKiotQ7Rm8z01zoocMxgSMM4+4KngCIEZ9RUeFKwlmbhQ9ikyTpWMMQHWcWaWaY20AoLKxyVxcgGpSeMJFuxHYP3tJ87kJY/JsCUSfJT9ry+JzExezVKiyelstYF0Mf6hERiR2ZMj+jAvYc9n6WnjMys25556L5557jm0rioK6ujo8+OCDckkGcMwNz3ioYU4wztTP137zeWOEcSxZobncl6IjhGO0nY9GosxG9j4HR/6AVN8UCHmsqsHP+hvgJmyHsR1uEjQTgtRUozE3yfXtSJSyameWIjDWlqLdZ+2myL40IU4MWaQlC8ua6zjyn/zWhOzdFqMNrDkZs1lqzpw5OO+88zBkyBB4vV5cdtll2L59Ozp37oz3338/ETK2K/ALTvKTvjlsNxQ03YbE4LOTKLOU9m84nxs2IXGXpV1zovJwEG4y6hgDEM/cmFHZ0KTl/TGpBnSfSsxTdCQfHBuTatKUafOO+NRb7zNYZmqWAiHcRwhVkxN3nUyRakF4vdks1UEe/+RBdmic0Hb6MWblpmfPnli/fj3mzZuHX375BXV1dZg2bRouv/xywcG4o4Knu3n7uEoAZzjdhvO5UUCi99lJ0EtpH/Vl3xZ/WYla7DMeKezbI+p8VhNwfkYqyvWwcE3x1JVJ4eueRJFPhTdLEUGhTTYS5UlmdsimlTMmxC7kPZzntQWRJbewLs1hbmCqow1NIkcGojVDSoRFGzJLxazcAEBKSgr+9Kc/xVuWIwK8oyIfPaQNaFEwN7pZSoiWagXmhjcDhVrt204sNrEmJFrKFE7bAQahOp/fsm9EzxwsKT6kZd21UUTE5w62v+2OWbP2tt53WLxubYMplF6v3eJzE77xGMxSNoIbbdG8VeEktgfv7B1JJImWQnZu88FNgK2MqJSbzz77LOoKf//73zdbmCMBRjitItzfyIm7xALCufxgmKxQ8GiipfR/+S/9RI+9MWV9PgJQb8PcHNMrF0uKD6HWG4CqO8rwuVv4qJxov/AJgS1zkzyH4vg3pKoE9Vyiw4amILz+IEiq1VRkksYsXJhWopfb6RA/dmJhyMzh5BJxRkcZUJKG1n9Oo1JuJk2aFFVliqLYRlKFwssvv4yXX34Zu3fvBgAMHToUDzzwAMaPHx/ynPnz5+P+++/H7t27MXDgQMyePbtNOTLzFDRVcLSJI7qXR9Vjeu2Yn2SaCwxyMYzPDRf2TsHKNuPrNKw8BLovEi/fkT8g0SR0qSkONOlh4IO7ZSPFoSCgEtR4A/CkOIVzBKYtHOlg3uYUWsLKtI7PTTzabfAbY5HLqcAfJFr4fAZvlqLm4DDCxORQHM4sJe6L5XU2s2pH/pPfipCKTvPRhvouqmgpVVWj+otFsQE0/50nnngCa9euxY8//ogzzzwTF154ITZt2mRbfuXKlZgyZQqmTZuGn3/+GZMmTcKkSZOwcePGmNpNJFTThB/1ACb43NAkfpbDSNawxq7DETo/h8HcGPuYf06c5eyoPjc0lLlvfjrb1z03DZ0ytDxTVTS8Gdave57NsYO5D4WlQ1ihFgjfAsTj/tK+cyoKumZ5AGhO2IRzeLfPcxNf5sYcxg3E7pOmmuroKM9/8iA7ND6gL1brSgE00+cmXpg4caKw/dhjj+Hll1/G6tWrMXToUEv5559/Hueffz7++te/AgBmzpyJr7/+Gi+99FKbWfZBcB5Ug/pXNIGqBgF/EwAFcHngCwShqgQl1V4QAKk1QSgqQVkDUKOqyOV8XQCg0R8UUu1bGmwBgioR6O6DNV6U1fqQ7nIaUV9qEAGV4EBVI1RC2OQKcKHg7HqtZriDNV7BuZOiW7YHDqiAQ2QfQFS4U5xQ9LhmjblR4VMNOX0BFe4w18HDF9AWoHQ5HdYyatDSfiCoIqBqvk+pKfbfAKw9vxeEqPCRFEs9DqIiNdWlNxPU1xzT6msKqLaTnMdl1EH77Kgumdh2UFu7rSDbg/zMVJTVagtpFuZoE7fZjySUjxSVu7zOh5pGP7I8LqSmOBAkBL5AkLGNrHtUgqagapFNgE0fEqIpEXRC9gdV1rbL6WB1m9vTriU0vH7rR5SiAG6ewVKDjPVyuxzolJGK36oaUdXgB+E6JnQouNZPmkO99SCVW+HKOh02FwKrz40mXhBwis8VIQS+gAqfP4gUpwNOqPC4U/X2VFTUNyHDnYKAqrK4QfMzlOp0CEpU3KAzykLuATNUVcyBkQjYPGftDtH0ZWuhObLx96S9OxQnAsFgEPPnz0d9fT3Gjh1rW2bVqlW44447hH3nnXceFixYELJen88Hn8/HtmtqauIibyjQe+uu2QU0HISrqT+CSgYcvy4DHNpgW+rqgY3eArz27a/4YXeFqQY3AC/udhzE0QWZbO+qneUozPFgWE4MlHkU8AWCWLmzHF0y3RjWIwdPLyrGS0t2AACyPSn45o5xcPiqkF/6LT5aX4h/bagHAGR5UvDvW04GoI9l1b8BpRvg9vdBvaOTMOB+tHY//jp/va2kI7un46EhB9GQ1R+NWX30S1LRqWwV0tMzMeiEc1nZt9YcxA97XHjhRB+6phFs/q0a7uwaDOmejR1ltdhb0YDj+nZClscltLGnvB7bdcUgxang5AGd2eSKqn3AwU1A91FAVgEAbfJctbMcQX0SHNI9G91zxUjAivom/Ly3EoNTD6N7YC92Ha5HlQ+o7DoWxKG9Vp7635BZsw09h56M/K49sHnVf6E4UjD0pAtQVuPFL/urbe9JQbYHw3vmADCUm76dMwBorEx+RiryM9wAalkEED+nGkqxdW2p8jof1u2rwnfbD2Puyt0AtHv5+KTh2LC/Cre9vw6XjOmJS8b0BKApSKt+LUej7rvSOz8dRxeYknX6vcDu74DMrkC3kWz3T3ur0NAUwElHdUadN4C1eyvY/Deqdx5y01xY9Ws5UlMcKNCZFSZrCKV9R1kddh+utz02oGum1k+//QQ0VKA+9RgAmkKWryvjlQ1NUDkntlAOxQFVxZaSGmS6XeiX3kk4rKoEK3YeRnqqE8dmEpTXN2F/RQP6dE5Hrn11rC1FARBoAn79H5DVBegxmpVbv78a+ysacO+CjSjMTMETI8vQqdcg9Ck6Bi8t2YnlOw4DAHrmpeHxi4bhYI0XG0zPUFqqE2P758dfwdmzElADQL/T7JWXYADYtQzw5AA9x8S3bYrGSmDfD0D+ACD/qPjVm2wa7MBP2rX0Gwc4XZHLJxN7VwHBJqDvadEpOJV7gLIt2j3P6Iy25FDc6qrjhg0bkJmZCbfbjRtuuAGffvophgwZYlu2tLQUBQUFwr6CggKUlpaGrH/WrFnIyclhf7169Yqr/GbQr7SUpmqAqHD56+AMeqEGvKxMQ42m0Gwt1RStFIeCVAeB22msdfPLviooioLCHA97xswZauOBBl8QwSBBjV73ip2H2bEabwC7Dtejk9MLt1PB5oMN7FitN4Atv3GKorcaAEGKX1slnh8vVu08DAJtcHc5FbicClL0wXfHoUY4FILUYA0cDu19SiFNcAR98NUbih8BsKm0Ad6ggsP+VPbu0D6pbvRDVe0dcPl+CwQJGvkvf2+VVrvPuJZab4ApNlo/WPu9zhsAIUBDTbnejwE4VD9SiJddh8tfAxCCxtoK+P1NCHjr4W+oRjAQYDIpClh5ep/59qhyM7JnDvp3zsApAzrD4VDQs5OmbFGlgze18MyN2TBVo8v9wy6jb2u9ARyobsTPe6sQJARbS2tBv7x8gSBrAwB7TgQ01WsTn1ecaGsa/fD5VXj9QdR4/cwxnhDtWFNQRWNTENUN/og5eCjs+o0+C6zfvFWA6kddnabQprmcyE7TJpH6pgCXws9gZcwGV19ARVAFGpoCFmE0dkVlstT7AiCg9yL8RKkogDPQoCkDpv6qbvSjpNqL6kY/ig81IqgSNNZqz9fG34yy+ysb0ehX2b2gfQFdBsqyxQ1Efz/8DdrEZwd6rLEqvm3z8NZoznzeBLYBJF7ZaawCgn6tz9oavNWAvxFQo5xr9HGfPcuSuTFQVFSEdevWobq6Gh999BGuvPJKLFu2LKSCEytmzJghsD01NTUJVXDYvdU9ajWHRZNFXyUIBFXU6LT5k38cgb7V32NktzS8/osfT/zswuE6bRAZ1iMH1Y3pWLOrgoWJ2zfYTHlN/x6s9grHy2p9SM9zYEj3bNR8L7Z/sNaL3p0yhFy2dknRDunXct1p/fG38YMBAKXVXpw4azG8AYIRPXKgZOUBPTTF1ddYiy2l4qUFVRVVen/lpHtwVBcXth/ysi98WtbOyyRsgBk70dhprsMudJeA2P57XJ88pGdrX/q7N+5CVYP2pa+qhoJAiDG99snPwICuGkNX3ejn7rMG6jeSm+bC3y8YzExk/XUmx07h5ZM/hgoFL6/3CedUNjThUJ22r7EpyEXIma/bBoTTWoSyxFYOWo9g+oryMab3e3iPHHTN1tie/ZUN2FpSa2mjTs/u7HE5kJ6q0eZevyqYpWyTFRLCLtTunWPXpWoFjGcgPKj5VrG8dYYM/KrvlU0KMlUV/qBquc8NTUHLM7RkaxmCagISaIZ6iMRC+j9xVqzs2oh7tUlmbsSHq+0gqvtsOcl+WzI3QGpqKgYMGIBjjz0Ws2bNwsiRI/H888/bli0sLMTBgweFfQcPHkRhYWHI+t1uN7Kzs4W/RMKstzoUAoWopmeAsMHK5VSQ6UmB/u2Nzh6tYHm9McgJDr2xRHJEIy8xJiBVJSir1SY46sBaVutlbR5u1P4dVJilH/MZF0sdkG1einJ90uycaXjIaNcMBAngM3/w2igc1Y1+0A9SbxBMoaIl1FjGC1HTtB62TMShFSazcsW/0mwSU4NCpaqqcikDuPI2zq00Q3Ga7m9FFZcCfWJn98CYj5lPkWp+7ED9YAjKdYWT3ueqBj8O6XU1+oOCL4nddYs7aR/aK4UEVgdalYi5kMzthAIrJfSbIh7T663zagqlx+XklJugoEg5mDJu344K6zsnzgFGJxOzxmYqr/noKLpCZF+WXwy13OsACMHhOh8INMfoDLd2HY1NAeszZOscHQ9EUV+IZyC+YrAvmAQjwQ0Qy4+2AfGrL7Zz2pqihmYoN06nE2VlZZb95eXlcDpb7uilqqrgI8Nj7NixWLx4sbDv66+/Dumj0xowwqNV7l/z1xRBpT6Idc3yCKHWVLk5XGf0QdhlGOLE3KhEU6gCuqNkn3yNGSir0eTwBQmqfFrpIpNyQ5dcsK2Yu5YuWYZyk845ptb6xRN4BYHoM2QFp+x5gwrHLBDhX9u517Jt9xJzykeYycx8FvXfMJQbo7CDY7F45kZVg2zi551MmacMpzhR9oH2F1V0C5lyIzJtgKgk2S2OWecLIKDP8H31+1zZ0MTuE2+GMvu+2PvCWAc4PjuyRbfXi/L9bG3HphmuXrvkhUYd2r80x42m3GjKodcf1BQS6MqG7dhMTD9NsvHycKxUKJmF502hNdA/sV5+MdQKnwKVqCjV2dScNBcydSW30W99hoxxwl6OZiOaSY91QjKYm1ZQ3hKBNqcQCFp7jOeYX4LWZ25iNkuFcvTz+XxITU21PRYKM2bMwPjx49G7d2/U1tbivffew9KlS7Fo0SIAwNSpU9GjRw/MmjULADB9+nSMGzcOc+bMwYQJEzBv3jz8+OOPeO2112K9jITBuLXULAUoRIWqiAMmpZ8Lczz6IKsNkp3d2nm13gC8/iA8LqcpMV6ob8xmystNpAdrtEG0c6abOWBq+9wo083DKQ4F/UyKj8g+iFISQhgLxSs3DoeCTHcK6nwB1PuBLuDr4OXTQuMp0wBozI1+1MLY2D2fYRPE2ZhUzJODnVJJTDMau+/8fWY5f4KCEytvygg3BDQ0BZlYGfrkTE+gEVKHanygId+GYh06XJgQMMU625PC2LSqBj8zhTb6jai3oMXUZAObr3azAmBVGEUV09qO/T1j4ercPksf6mVqdf+rNJfTYDz8QQSJ9ptf/dwysIdRWIjwrBDhWbfrIZG50caDUDqiwNz4HCCqyt7L3HSXLq8P3iaO/dPLh0rZEFeE1OC4/aqa2EigRCsFCVc62ppSY4cYZTT3WRswS0Wt3LzwwgsANAr4n//8JzIzjUieYDCIb7/9FoMGDYqp8bKyMkydOhUlJSXIycnBiBEjsGjRIpxzzjkAgL1798LBvSQnnXQS3nvvPdx33334+9//joEDB2LBggUYNmxYTO0mEmwg47/kLQO7yiaYwmyOuQGQkQKkOoAmVfNL6ds5I/wyDC1mbgirhn4hFmS5kZdOlRsfQAioL3Fuugv5+oR4iGcNTJQx3ayob0IgqG3wZikAyHA7UecLoK5JvA4705bA3ASs6/SYzUPiNZq2id1GbCwCP6HxLAXPKNAnV1VFBkVVDaVFYG5M5hXqb+NQgNQU8eucmqW8ARUNTUGkc2kCnFwuFPFStcmXKtZ5GanIS9ccbSvqm1gf8060Zn8j+0nZulNgZWyKqET8yI+qHRjPq9hvRjv8L9p/Vp8b7c5ouo29liE8FWHeMcIpbpHKGkuZqHaEEAgIW7kcAMp9mgmLvpd56anMWZh3iqd9EU6pbRmiYW7UyGVaLEaCmBtLh7V35amZaI5c5nvSHpmbZ599FoD2Mr/yyiuCCSo1NRV9+/aNOdfMG2+8Efb40qVLLfsuueQSXHLJJTG10xpgzI2iKTfC1xTH3BRke/TBWf/qU4BOHqC0ASit8bIQYAAhbPrxeVEICEr1L8SCbI/2lQjNaRjQ5AG0ATY/UztmmKUMORwmh2JaZ5YnBW5TvphMdwoOwoe6gHgdZuYGEB1gfUFdEeBNAuGuzTKJ2BwUTCRieXvmxqiNP8pfIVPSiCowN5rfiz4h8awXdxwwIqUy3CmsIC3jcTmRm+5CVYMfVQ1+5Ge6mRyij5ZVbqpY56WnIldXYvdXNjK/F5VoOWnsrt2WUbFhv4QPeSIqd7Qevq5QCSItTdkpheZJnfWfvVlKpcyN7v9ilpdn1gDN9MjfV6Go6b7aysz91pgb2h9WJZpnbip8DhASRKn+nuWmu9Cgm9oa/VafG2PF8ARO/iHr5suoABKYi6atKgdRwzrmtA1Ec59DnGNWctoTc7Nr1y4AwBlnnIFPPvkEeXl5CROqfUO82QqxdyhmzE2OW0h8R2AoN5SO5n1yCEh8dWJdLlU12uuazTE31aJyk5vuQl66xsBUNvjhD6pM0aDXy4PWmZeeCsUkOfUfCMfcUP+IcrPPDROfTsjRDxRiZEw0DsWhoariRCj63ND6VM2pmJ2jQiU6e2DrUKyBKjeZ7hRj4UQuf0lhtgdVDX7ha1+rh4uWsjEVMeYm3cWU2EZTYrzGJnvlxhY2Zin+PM0sJZ6iqqL5L6blSQCTQzETRChL+8+T4mQJMDWfG04p0J3hw6lW4Zk8Q3EjdnQMd77CZA09uYkOxQqISgSzFL1Wr98wbZkdiuPucxPNBxQRza4JQcKUAZsvgKSgjSk3ooYf5TkJkSQuiNkwumTJEqbY0MgLCQPG2Eu4f80huQRVjQZz49AHPNqfnfR8ZpSOFpZhiGZp7ljk5X6XMLOUwdzUN2mZXg/WayVz01OR6XaykOTqRr84YJvEKq02vjrNyjyNmKo3ORTzv+nzVSH43BDDoVgfU8NHS4Wduix76QTKL2MQqk6ahZfCYaesELNZyvCXsHOMpaLwyo3NnM5MU1U0T4xehskdQmqeuaFKrBmNAU3ZsUyU4fo31IcfMZRQFsllYjOtj3UIFoQxN6GPUUHqdJYjLdXJFGmvXzUtM6E5w9ubKmltobVdldg9QfbFjdyK9mc0NgUFJbPCp5mweLMUTVDZ2BS0PENhzdctQTSTnqDcJMqpOFJPtxO02TmzBcxNGzRLNcvr64033sCwYcPg8Xjg8XgwbNgw/POf/4y3bO0Sxq3VXnAnVM2hWCgk+tyw8FCiPRtMudG/2PhlGKxfuC1UbrjT6Rdil2w3PC4n0vQInYN1fs4s5YKiKCjIpuxNkx4Awn0Nc1KVcsyNOWsqdZKtM6VqEaKlqHLTwPvcKELqe96nJfY8N3YOxSJLYvclbFiziKh42EwERFWFaCmoRo4SW/MKnZy9hlnK+EoXmRvAiLAxOymbFS/6fFHmJjcjFakphj8KDxoxZQkFt5SELXMjmpwMJZRf+iJcKHiop9pOKbQ6FGtlaEJHT4oDGfo1NgVV+HXFzWBSwrMz4UxzfB8T84mmuhT2n2q5Pi3HjfgilPscUIMqe4dy012ckmaEtCc8WkoUNPL+RCk3xkuXmHqNHfGt39pgiHZbGc1ibszXwgaqeEnVbMSs3DzwwAOYPn06Jk6ciPnz52P+/PmYOHEi/vKXv+CBBx5IhIztE8I9FrVZlRAhWopf6ZeAoJPud2uYpYxqLcpNHF8Q+oVIo5ryMrSvxNLagOFQnJYKlRA2sZoHZGpSopMFNWvlprsskxBlbur84nXYvRdiKLhJAUL4cS9sD4WJ9EnhHHND12lMdWa52bpFalCYPHkmx84sRVGvh4FneTizFFeGKphVDX5BRsGh2EI6GCbRXD1rrx1706C3bZbTnsSy7uQnWAJiYcPM/kDRhoLb9nUIh2Lqc+N2OQWH60Y/VQKNi7KqL9F9xRJV5VjDSNwNDT9XxYdW/0nNiz3ztOzTTaqCej8RTLt8KLj53hjjSLwnzRiZm2QpB222vnBNNUOBaBdoe8xNzKHgL7/8Ml5//XVMmTKF7fv973+PESNG4NZbb8UjjzwSVwHbG4yvNBWAQ1sUkugRNYoDIEHUNBFQ9rkg24MDVV52LgGQ7yYAFKZs8F/riVptG+B8bjLdOFzXhLz0VByo8uJgnZ8pN3npLhBimEQqG5oEBY6FguvVMuYmLdVigqEDdb2fAKbJRAEd/7X0/fyyCt6AmFuH9y2JZu61nbhMygcQIb+QDs1RmJ9k+ImMykSY75B2jhEtZWuV0o8x5iY1xZbpKcihCqbZ50b715oYjwjMDY2Uyk134beqRqEkNY/QOhyKgiAh9s9fmD4EREWH9x/j99vJagfzvQFCRwnV6X5DaS4n3CkOuJwK/EGC2iaCTjD6yRIxFYPixStp2v4wzI3ONhpPu1iWfij07pSO2kYfqr0q9taBORHnprtQpSf/9PpV1mfsOsIpoC2Bmf6zL8T9TLBZKtGMRyLrj6ovWwvNke0IYm78fj/GjLEujHbsscciELCu+tzRwEwDNFEYCDNR0dwPFXoEdbYnheWx0S3/IKphljpYwyXy0++U9euwZS8Irc4XCLLlIDrrzA1d+bu0LsA5FNsxN0pIMeycISmoclNrYm5E+YxQWApv0BxRZb9EAl+HuIP/becMq/0rsAyWOo0fRu4VRbgOB61TVS1RNcI5OsyTE2UeMj0pLNycv25mlmrwC0RAKPMEIYDPr7Lkdrn6/bVjbrzMoVivM9xCjGH6ENCXn7Bhbsymq2hgd58F0xLX/0a0lAOKorCIqQa//m46DCVZvMXW5VLEo9xvonKKdfiLMPyerc63BAZzU5DtQUGmJuv2au2s9FQnPC4nsmzMUmxZhyiU8eYhRuYmUZO2eQKNe73JRhtTblpilmpr14JmKDdXXHEFXn75Zcv+1157DZdffnlchGrPMJ4PfTKCnrQLOnMDoFxfxqCrvhKyNhlZfW7Kar3cpKZ/nSbIoZh+NaanOpl/Qid90tt2uAmUOMlNd0ElRhK5qgbRodg8BfI+N2blJsMdwqGYEN5xhNVBoTkUG2pBuEy34a5Z2wgdLeVkdiW7OnTWCGYTE1eYuwbRLKXampnM0WR1Pu2e8A7FAnOTbTA3vO9HOMdSGlLvcirI0H2qqPM4oCkCgNUs5TApXiLCMzf8ISfnxySYrqIwS/FlbDM7m07kMxQ7FDDfoga/8awa54b+arUu6ilQN5F9bnhBebOUqc4qzg+vIEOTdXu1cY8UxTDl8lFf9N5Y/JWTiaQ6FCcaiWyn7SkBBlrA3FjOa33mplkLZ77xxhv46quvcOKJJwIAvv/+e+zduxdTp04VFql85pln4iNlO4JhltIHHmY6AaBoA9Vh3QJAfVt4WzkBQV4qgQKNQq9oaELnTHeYgaulzI12Pv1q1NgArbVOmZpys75UZ1/cgMvpAEBEs5QgGGFyev1BNmDnprssZqksj71DMcCbpQyfAwofJQgVrSHepGHXGxaui9gcFcwolGVw6Ns2dXKXa7zOInNDEzmqxOxQbFVEAGt+H2qKy3Sn2LICVMGs9QYQUFXQ+0afJ3PWX8BYCiMvPZXZSHjmpjDbg93lDYZZivaFef0mHnZ+S8L8b2VuAFHhiyYTMl8kNJFE3zeCuibtt8flhAIFabpyU+9XAbd+v/RnyPqQ8PKroQ6JJtEQc7oxJmj/CZwVIYCijRaVLILSjUOMudGewby0VCiKwpgbLdMyVW7MDsUJZDZC1S2USeQSDGFkaH6Fca4vXFPNUSDaAdqgWSpm5Wbjxo0YPXo0AGDnzp0AgM6dO6Nz587YuHEjK6e0gYtrDWghuXwuGqK/7AZzc6iRAFCYcqNwCgEB4HIQdMpIRXl9E0qrveic6WbsTrwdigkB9pY3YP3+agAaG0DboEsw7K7StIku6cZXN51Yy2p9WLO7AgN6qMiC+CVMlZJUpxaRY34ihGgp83XoEy/h19bxOFDtVdnyC/QRC/DKTRhFRFFsjoeZmI0J3VppUCXYWloDxyGC3bUKSqtdcDmAvVsrcUxRnu4oTic9ze+qpEHB7jonOrurkdvJrWestcpLZajloqXMkTGAxqylOBUEggTLd5QjLUVjKI7qmsFkBLSFSwMqQU66sdo8r9DkccxNt5w0UbkxM4e2HWydzMxh3lT+QFDFzkN1GOnJFe4F7z9isi6x837aUwl/UIXL6RDGF0M2sBMbOAt5mm76zWDKDT0v9Pelwe0QwHR5wvzEbWv/2jA3HLOn6MqUKQey7gulCdYtx4PDmZqsJY0ccwOD7fQGrD43vD9TfBFFhcmYqJNlAknotZAQv9sAmqN4me9Je2ZulixZkgg5jhhoA6xqDDggUEC08dGhDVTU54YpN3ySPkIAhaBrthvl9U36wog5titGxwN7KxrwyH83s+1uOR7Wgnm5hEKq3KgEPfSIjupGPx7/YivWH+XGP04TFTWawTgvQwsftzgUe7gkfiZKlC9JfY8KMlNQ7W2CPufDoU8+qhp+wGB+UHTiFNoy2qQwQsHptqVKfLf9EJ7+ahuMTKxaf2DdLvTNP4ilfz2D87EgaGwK4M4fMtEQUIBf9mFUr1rcfMYAcZI2XQVdPiCTj5biDMkOh4LCbA/2VzZi7ordbP+mAzX404l92PP0+Jdb4QsE8foVY1jUWY7uGA4YDJ0nxcEUHRoKbjYn2TM3pkFRUWxMTtqO937Yi09++g23nDEAl4zpaanC9h4B+PDH/fj7pxswcUQ3XHhMD5M5j/aZ0U6t7mPtUDQTnMOhIE1XphsDosKmmFsjRk36EyZerqAIR/a54fcq5nJc37Gs5TlpKM8Sh+a8DM0hn7Kd3ibeKZ363FiqjA+iYm6SaJZKJDOVaLRp5qY5ipf5nrQd5qbZq5vt2LEDixYtQmOjZmORyfwMKNxgqEVL6TZ2nbmhZhjq68AUAhhfnzl6mG5NI11fKITPTQuVHcqKuFMcOLF/J1x5Ul82kfbrkoEpx/fGmO5ujC0Epg5xsBZ75Kbh/47rxcJWt5QH9GsxpKppNHxGAOvznsn73BD7F4s3S1EnS29AvGY784sA0yQgNhWGuQnjUHxAjy7KTSUY1ZlgUG4Qg3M1hWB3eQO8/iCn6AVRUtOkKTY69lZoHtpi0j+O7yOES+LnFEwbPG49cyAGds3EgK6Z6KXfi+1ldUxuX0BFdaMfXr+Kaq+fKUwZqUadvTqlY9zRXfDHY3vC4zIWmOSvPZw/sb2DrD1zs/twPQBgT0W9bYZi23sEYEtJDQBtmQi+nPabtm2UP6SbfnPTU5l/VgbzudHPo/8jVodirYD+vId5vqLJc8PkZCdZw6YJCIuKykt34fyBGTixix+DcwI4+ag8nHRUPhyKgkw9iZ83ELTcG5bYMqFmm1B185N2gvPcJBxHWjtRojn9G9KS0PrKTczMTXl5OSZPnowlS5ZAURRs374d/fv3x7Rp05CXl4c5c+YkQs72BUKMCAYQbS0ZBWywpJQ5dXB06DZ3wtHVLJJIn4xCJRtr6Qvv1SexHrlpeOVPxyI3PZUpEykOBbP+MBwoBVC9H7UBB76HNngqioKbzxiAYd1zcN+/N+JgfRCAQ5CHpb930VWYTcyNm/e5MTM31MmaW/MqQ1dudLMU8zGIYJaisJkDbQdieg9S+AREJtCJ6NRuKmaeSLCrognpKQSTvslCo18zpXWmp6sEh3VbiMdJ4A0qqGrws340y0ebZGtLpaZYnEcpfj+yO/IzNGftshofZny6AYdqfXp5hd1fQGNjGjgnW4oUhwNXnNgHAPC/rWXa9flE5kZRQveF7WRtUhboPaLLaFTUN0F0soZ+fQqCNo3QZ6CyoSnkgtO8clGq6VAs4s/BRUsx5gYhHIrpPsUBhQRtnPi5n7xDMcdQCcW5PtQULeuq4MGgpogCmumpU8CBGSMbQQB0Hz0Ev5T6NIdi/Z3x6aHgDkXhGKgw7FpLEM0Yk4xoKZMpL/710s1EKh3thLmJWrYQ96T1dZvYmZu//OUvcLlc2Lt3L9LT09n+Sy+9FAsXLoyrcO0RhIh5M4zlFwhzKNbJGDZQObhz6XccYzWocsNyecT3hfDp2VpTUxwm3wGrMkLztvDPMVumwQ/UNhH2UPPMA51IzRNzhjuUz43I3LDVyk3MDfVfCETpUGwfRWS9JrN/i92XMFUS0lMIgkSbCB0OoFCXsbTGyz0HKg5qq4PiqKwgFGhsU603EJYRqePMUux7yHJPdPGJcS+agio71+s3Jp2GpiCLgkrjlBu+Rrq/wbTWlGGWCtfDMJgbU3/STerQXFnfZGvuC+U4TxVuLTrP1AdCnhvtRJqXqZPeJ0K0lP7+GdVYl1+gyqHp6izbmlnKXmaudnZtFp8b6iPUZPS39u4bS4wEg0EmLx0XCICmAF2cVytnmFETOPmHvMgkMjdtTimIAW1Z9hBjcFTnJMsfKgbErNx89dVXmD17Nnr27CnsHzhwIPbs2RM3wdorqEMxhQMEIHoWU320ooNrho25hipHbOL3UrOUdjzeDsU+ffJzOR2sbmYiMLVBJxF+HSdtxWV9mYYG0cRmLFxIF4kUJyU+WsqstPEUe1mtqNz4gmL5YJQOxZZ1nFQr40DbBMRMv2ZQn5Q0p84c6aaPgix9NfUaLxe+r+KQbovsmqaiU5rWX1UNTbZ5bmib9TYLZ4YzZbucDjb5UedUgbnx2zM3fL+YQ8GNMoZcFkR0KNYc4X1cMsYKzRZpOY8poKZjVMGt9vpNPlYwUV46c9Og/ZunMzdQjPetkTkUU9bDJkMx974Sc7SUjSLMZLZ9AGl7lC3itD3qI6S/505FgVt/X+h18YkUPS4Huxf03tJnKGFrSwkIpdy04wzFlv5KVv+1HUXAgpifIbOS0/rUTczKTX19vcDYUFRUVMDtdtuc0bGg3VvDoZgm8SMgzKG4wcTcUEZEpfZ7wk38+gRnrHNknkha9oJ49a+/VKfDUFr0Y8akRydWUfmhoFFVpQ3ilzednN0RmJsgAXxB+6/Dino//EHNwbhLhmFF9QUNZUnIc2NnFmDym6u3b9NOGTJPqIwBSaEB/NpEWagrN6XVXiOJHyE41KBNRJ3cBJ31HCaVLEcQdPk4nxsQpthmulOYHma70CYH6hBMQ/sbTWYpuk2VGK1O43zmc9MkMjdhI3GIdUM19ycBKhuNmP+KhiabrMT2SlQgqDLGhxBDEaCwc7Y31kLjzVIic0rNUuaV7A2/ocg+NyqfnDFEGX6/pktxa0vpddc16WZLPeEgCNEd5sHSCGjMj2LxizLGGqHK+IHYvydimXbsUJxMRNOXrYbmyGOaNHhNvpURs3Jz6qmn4p133mHbiqJAVVU8+eSTOOOMM+IqXHuFwvlSKET/miMwfG782jGm3MA6STN/FJ/oqGvlyFv2glBq25VixIxYsuGamByVDf7av/l6VFVpPW+SI2wSStMnUvPEnO4ywsNpThJ6Lu2Tg3rEVVZaCtI4DzG6vpQCElMouHjA/muTTmYpTk65MVVMzTZpKXqeHf3eFvBmKTYWqzhcr/VFvltF53StbFVDk6VPGGOlEra2FJ/nJtKQkatP5kaafpPPjc/K3MBGuWkIodzYws6hWGA3tIzM/DIRTQHVoqSYZaE4XCeasKobTctNCE1rBZlZSle8FQAZbu3avEH6fNNQfAJbU6VNiLlemv0OCpmnrbKLcir6/63MDVVkPWwRU6tZin7gUNMhNTnSe2Mo++HlaBlaUblJmOnDXrlNDNowc9MSs1QbZG5idih+8skncdZZZ+HHH39EU1MT7r77bmzatAkVFRVYsWJFImRsVyDc/wGN7VAYza1/cenzBh1sHYp5QrDxuUlQDgsv9blxWn1uLBOv6epouXw9lPhgo/hIm5kbMxwOBRkuBXV+LeFaZ3pAs80B0JxkAW3BTqcCpCgEAaJo60tRH4MoR3ML+xBiEKaHnQKTIoIyG+lOPbM0HHAoCvO50cxS9L6qOMwxN/mgyo3fonDRUOhGLr1+pieFhdWHUoYoKHNjmKU4nxt/gH3tp4UwS6WFUG741bwJER2hIzkUE6IpOJWmRVYP1/mQYvIOtlOizBmqLYu1MlOW0TB1KM5hPjfc8gsWnxsz+WRibug+m3eQRKHc8OM99bkxg5rr0lKc7CTqVK+xQ8aHgIcpNyJzE9J03VJEVV8yGIkE1dtaDEqbY244RC1b272GmJmbYcOGYdu2bTjllFNw4YUXor6+Hn/4wx/w888/46ijjkqEjO0KhBC2rhSgh4UT/VtPcaApSOBXdeYm1Rh4AX5QIsjSQz7rzNFSYd0bYweN0EjhlBurfwfR5TSukW+5c4bG3BysJ2wvIbzPjREVZkZGqrbPytxoKKsVF3l0p2hHvEGwqYcPBQ/j8mCNjAlBEVNliV9PyTxhGD43emJF3eeGORTz62ERgkMNWj/nu1Xkp2n1VjX6QzIizBypaApHKJ8bc2g4Y250loRnbrx+w6HYzZml+Bp4nxtxuQPhckyw9qPZLEVgXeCTmprE67G2YV5brNK8UCg7x3j+2EKvaYZZiiaN9ArKDXuxhOvRlkux92HhtyyZlcNE3wkOzMYJAIyoSFvmhpql9B000zK9t2bmJv5zZhSKSzKZm4TPpwlsoN0oNDEyN2YGpw2YpZq1/EJOTg7uvffeeMtyRED7ylPZgOsgms+NNgE6WHZUAEj36CHS+gNBB0qFEGTqrI4xyVlNV1qDLVRu/AZzY5iboMtlcoCwMTkAQOdM3ufGqMOIlqIOxdb2M1MVHKw3LcHANWAoN6lQQOBxapFZ3gCQossnLr9g7Q8WRm12EA5hljIWJNQiUPQEwwKMaCkVQaLoPjdAQRZlbnzsngUJUNGoKzcegnzdYZQtXcGBfq3X6fHuGe4UKIoS2rRmQi7zudE61OxzQ5kcgbnhNBfKCqhEi7pyp1jD+K26jd2EboA6FFuZmyYUZqcJ+xw2UVnm5TfM9YgNE9T7ibYYK7h1sxSDKW0w+dxoHx9mJcVQsXlzl7bNPyvieapKYOYpCfc8aT4+Kl8bAKBeX0eM3RdB2Rajouj7xHxu9HIJY24EhFJu+N+JXlsq3tcX3zE1+rbamqLTHPbNdE/akFkqZubmrbfewvz58y3758+fj7fffjsuQrVnaBYVg3kQaGiHk03iqU6Hvk4T98Wl0nM45sYULUUsyyLHh7lxORVLtJRhMRC/PDU3IsNPgfrc0K9lWoYqN2mu0MxNpj5Q1/vF62A+N/pyAbkZWn/o+qCwMrhqdfkQQHdZ09bYv8x0onMoiinM2EAj53NDVEBfYhqFurPwwRov65/qJi1jr0MhyEkl6OTRmZsGv3W1bX2TXzQT4JPpRTJLmZibAB8tpTLmxhMiFNyd4mB18iYts1lKgI2SKDp5a+dQmWhNUTM3unJDj1XWm5gb4b4S5kyc4XIIaQjSLcyNznjYTG6Er9gkkGiWMitFNsq1IKsCOx8luoJ5WqpTLAtADYr33uJz46DXkaAJJQTDKZZJ8HpSQlttTSmIAdH0ZZtAjLKZr6UNMDcxKzezZs1C586dLfu7du2Kxx9/PC5CtXtwN1rLVkzz3ChMufG4HNwXl4m5gREKbs5zE29Qh2K7PDcOcdYQJgFqagCAzll2zA1hsofKcwNozA1gNUvRy6Uh1LlpqQAI3Jxy49AdVAIWhc8EVrVJgJAOxdDlVWzNgYGgypTCNAc1i2mKUJeMFCiKtt5Vhb76e7lXqyQvlcCpaH43gNVMw0tYx4WB89JFipYyMzfeJuMaaxr9jJVKY4kVTe1zUUW8SSt8hmLrgM3volGAbO2kXG1dssO1NsoN7z+j46BulurXJUO4NnaOybR0UPe3KchKEZRCO+aGniiOzUS/ALpwKkGowT5oevbsF1mlHwfUpdj69V5vYjkBYiyAqoqm6TTO54Z3WeLTJ8QX0bANgsYX5/bNTcT5+tq0kpFENKcfzOao9szc7N27F/369bPs79OnD/bu3RsXodo39IFQv7dahmKdhlacnHLDmQXomZztga67ZM5QrJon8paapRhzwys3VMnir0l8XFnYOow1qA41GoM9IVwESIgMxQCgEzKo45kbG7NUrr4chd4t4ANtIg3mBhMjXl+orKrMv8VhH4FSzznbpqVoiitRHGwdI9Yfup9NuU+7w1SpocxNfVNQUCB40C95quTyiy/yMPdoJ525qfMF4A+qAnNTwSlTqSmGqdBcZya38jQFr1RZetvWoZhXFrVnhfrK9MvXlJTyeqtyZ6dEUeZmaLds7TpCMjeaUnJQX3qhMNNpmFgVsKULmlQFQZVTXolJudGZGxLF8gvm1AzWVA2cnHz9pi8Jqsymu1LYfj5yDuCYG8pA+YPCR4+RLiKkCM1DrMxNwpSFZCkhiWynLTM3zZEtRLn2yNx07doVv/zyi2X/+vXrkZ+fHxeh2jMI0WzqzCwFRUvhTgAoDpG5YY6A2j6WGRcQoqUIIZzPjaXFFsnrC4TxuTElhnFwbfEl89K1SCaVAJVe4xTe5yZUyvzMVH29rVAOxXqH5aWnAoQIZinjy5Y7M0x3OMysQAgHOt5Hws6PgV5XikNBqgMsQSPNT1KYrTETpfXac1Dh0yrJd+tsj1NlyoXZWZb2eZ1Xu26a74j5AUUYMzLcTlZ3VYNfUFCoOUdLBMebMhRTHcbkSeEQzFLmVq2dzj+nQVWboKv18PR+nXXlps6GubJx4qXKzeAQyo0oF2GRUoWZ/LIVBiMFGBGL4vnm55v7HcIsZYnUC2OWooqk3fILDRazlPEOmD9oaGoFr18VngfDpJdI5iZUkWQ6FCf4+hKpdIQYc9oEmiMbI25MDE4bQMzKzZQpU3DbbbdhyZIlCAaDCAaD+N///ofp06fj//7v/xIhY7uCdmtVg7lRAIXoYb0OJ+h47uFyvNCbQB1jFRDO10L7gjZyziSIuUkxVJeQkTncDp65SXEo6KLndTzUaHy58z43ocxqui+y4GhNv1p9QaBGH/Rz012aQ3EKldsoHhASqdlMLibFwHgP7Qdh3pRhLFhqHBfNbVqeG+pQDBAUUOWmQWvTzNyoJIg8nYkyhznTXqrn1pUSrsHUj2Y2zOFQUJCtMUdVDU2CgkJz39DoNdqg+T5nMeWG87kRmBvzZGDVLnllMKCqqPH6db8joHe+9rDYKSl2y3lRsxRVbhr9QfZsWUAIDurZiQsyU4TXI9XpYOuFNQYVTtmgz6xxhQCMaCmTRMKioBazlM37yN07BYrtJGL2T9Oa19oPBsWgAqoAaeMCx9wc6XluIsnQ7OqSOSG3nck/LGLuE7Pi2Q6Zm5kzZ+KEE07AWWedhbS0NKSlpeHcc8/FmWeeKX1uQJkbIwmdQ2duoDM3ei43pHGOm+ZJ1wFtHRy6v84XSCBzw2co1icmSzZcow1rTh5N/oJ0rexhXbnRVi3WjntczpCMQ6ZLO1BrciiGYjAeHpeDfXW7BYdiLSFaRIdi2q9mIULQ7cKXNttnZW6ofwRl5egGVS4O1mtKGr2OTjpzQ1QjZNscCURFpKavTI/ZoVi8BLtupcxRZYNfUFDoJXpSRWdicx12zE0I31qwCzI2LGVU1fC36ZzpRpcsrX+qG/0WfylzLqJar5/1Rc9OaazPecZLfH8Mh+KCDKdw7xWFS1IYoItYGjKbL5BQDxkiXpD52uzOFXZxDvmUuTGXr2fKDX2O+DbEjw3mcxMICs+DxewaL0RllkoGIxGFHG0d0fRlq6E599Cs1ERJMScBMYeCp6am4oMPPsCjjz6KdevWIS0tDcOHD0efPn0SIV+7wW9VjXjv+z04XF6OMYcX4KfMYcjI7YKL+gEgKohCNJ8bgbnRFSCT6UMbBBVkpqag1hdAnTdgyTnD0MIXpImLlqJVWSZSrg1+F7+3MF3BehAcbtCS8VGaXYHm3xHKETZDV27q9cUz1++vxtc/HUR5mcuYpLI9Ro4PqtwEOLNUCHOCJqdd/9hRqPzkZTA3dj43dV7xK1vrL4V9KVDl4n/7VBysdmNLlfaa5VPmRg0iN10LgbaYpUDNUqJDcahoKTMUKIw5qmpssvXpoWt9sXNMdVJTWKNJuVHMpAOF0I0Ee8rr8f9W72ZmKKeiMIaqMMeDbI8LToeCoEpQ0xhgWYTtKqXKX5Y7BZ4UJ3LTU1Fa7cXBGi8GdM1k12w0zyk3mXyiQq2cx+VAnQ9oDNCzFGN85tsm2jFDr7F/xqw+N1G8j4RXlnXlhi7nwZmljA8aMRMxy3PTFBSfBxvWKz6IYtJLaoZi/XcbmEBbhjam3DRH8TIrNW2IuWlWnhtAWyhz4MCB8ZSlXeNgjRf/WLITf3J+jUtcb+G9sjPw98C1SHMCQzKtPjdpLo650etQTQ9XhltTbup9QaSl0sgNxPW5EVcFFx9oheMt2D5F2+TNUgBQqLlRoKwRGARjeYL0VKcQdWRGtls7UNMEgBD85YN1+PVwPQBjwuuVZ6xl5qYOxUFNQiBOGYq5i6Ff47yzLd835sgWlRAQVpigt+4wu6mcYFO5sd5aQTplblQWsm0xS5mZG3rBMXwQicyNVbmxM33w7dv63Oj30F65EZmbx7/YgkWbDtrK1qtTOpwOBTlpLlTUN6GyoUlQbsz3iGZm7prtBiFAXpoLpdVeW+aGnkejpbqmO1DJXaeiGNdeH1AsHwxsJXAihoITQkIO9kQlwutop9xYd2kZh/mDLEMx51DMzqfLLzDmhoa0q0LbTBmKt10qqkmPL5PoPDcJRrIYlTbN3DT3nHbM3Pzxj3/E8ccfj3vuuUfY/+STT2LNmjW2OXA6ArpkunH1yX0x5tcAUAkMST0IBID9tQqGZqgaxa0oLCrIbuFCw2lUG2AzPSlADVDr8yPdrU1YhKgm5SZezI2xcGa4Faip1CoxEp/xZqlDur8DW55AnyhDMQ5d9Gy9Bxu0QXlvhfbZPaG3HwpRkdO5Oy47dRBKqrwQHYoVrd8IMa0KLvYHv+kwM/62ExHPRym25sBaU+ZllQDa8gtanecNLcRfzyvC4X3bUFHnQ5AQdPUQDM7R+kRVVRaybTFL6f/SPDcZbrNDsVUZMVdQmKM9K9UmsxSFOceNeYKkx/1BYiqnKW/WbhMnvz3l2j08tnce8mg4HLRn7K5zi7CvogF56ZpyY15Kwex4Ttefyk5zgYAwcx6vFPLyB4MqyvRoqa4ZDlQG6HVp5XLSXNhX2YgKn8LMjuZlRYxf2jtrOcorwkQVk/bZvI68z5fmg6eCEDHVHzNLCcyN3oaubdN73y3XgzOKuqBLllt4HqyfIvFCNGxUEqKlEmX6SqaSccQ5FJsZG4p2qNx8++23eOihhyz7x48fjzlz5sRDpnaJXp3S8eDEoTgwLwWoBHo7KwCAhaUSAsDhZI6zvGnAGJ+0yYP6ARi5boLcVxl0DUOnUOLkUCxES+lVOgwjPier9nVLuN0KgELmUKz920DztKSmsDJ2KMgwlJvD9T4EVG1Qv22oH43+ALoPLkBeQZam3ID3uSG2lYb4jtBlCMPcUFdwXhlS7P0YrDlJoEVL6ffE43Li5jMGANt2YsuBJtbHRlMcc2MyS1FQsx7NVG0OZzeaNSk7ADNLVTaEMEsJzI1JQVIMpa2Jk9vBOSCFdSgGYYrH70d2R488IwNxilNBv84Z2F/ZoCsp9TZLKYheMMLK6MRYhsOsFFIcrm9CkGj9lJ/uAGrodWryU+WowqdAgSPkB6ZhdlWsCrO5oF4OIBbmxqwsMwXR1B41S7GILsI936aPjR65abj8hD7CPiBMFvOWIppJL5mrggMJVkjaa90tRXP6N5RZqvURs0NxXV0dUlOtNnKXy4Wampq4CNWe4fTXAQCygpUACPuK1NaqcQh5bsxmKTZMOgAQwqJW6n0Bbh7nbCbCWc1DEx8tZWZuWCmjDbpQNuGWJFAUBYW6ksKUG2qWcofOcQMAhTrjU9YAlFRpJ3dOd4IP6DHeF8JWBvcG7BUm87sVan0kdhGmE8XyfBI/A3Wm1c710rbC2EWJKSAcc+MzH9TaoMqhJRQ88hcRZW4O1nh5DoJBUMog+qxozI123M/F2PPO1QJMHrVef5CxMWzpA65u+q95gU+jjPYvvQ3CyuiE2Dpi831SqvdnlzQjwotng2i7FT6HbqpSuHsPrnGj58I5FLN9+r9W5cb4bTA33EeJ/i9bzkNw9hbfcSN83wDPiFrMrolASIfikBuJEqSN1hWpqWQpaElGG3Qojlm5GT58OD744APL/nnz5mHIkCFxEao9w+nXDP4u1YcsNKKsgRtwBJ8bI7U/ew7oYKydwTKq1nLRUka6dyur0hw02TE3+jEjQzH39cnKiO0WmJgbcyhzqAy3XdK1YwECbC7RlGO6+KTWtCq05WELZ1Jn33BcjYm5YaG9xOaolbmhjt3afuNAnc0SBkRRNKbL/JUbQgOjSQkP1ngFHwn6TFCfG9p/oaKlzFAUhfnc1HiNBJBUSTLLrUAxff2DM0vxyg2n6oaZyA7WaExMaopDmKipHFqbNOO0zSKYvJ8LxEzNPHNTyimFfJeU6kkfC9MNR1xjmQWFKUflPgWK4TGv/9+kwCgKiI1ZSoRpMI/wPuqcp2ACU1ViKDfUx4ozS9GFeI1hgldohMqjEaEZiKLCpJulEoiksUJtTLmJ9brtGL327FB8//334w9/+AN27tyJM888EwCwePFivP/++zH728yaNQuffPIJtm7dirS0NJx00kmYPXs2ioqKQp4zd+5cXH311cI+t9sNr9eepk42nP5a9rtAqcDBBm3W1+65sfyCEArOznBAY2a0PZlubSCv9wWsDILiAEgQLXlBgipBQJ9YXU5+8hJpcL4Nuk/zMzEYnsJ0/Qs0oPnbsLWX9AnOsoaSjhQF6OzRHJHX76sGoOUn4WUxGCLD58YXIKH0hpCwzD9h8rNQxcbO54ZlXhaijkwGlTDKiAIVOekuKNCWaSivb2Lh0cyh2MTcGFmjbZggk07VNdstHE9zOeFxOZn/SprJLCXKZjA3TUHeLAWmTIq6jcjcUOWiU3qqNQcPVTLCMDfm55z2dYaZuQnhUFyqK1cF6WA3jf92EJkbmqXZytwYZyqgmY+5izbaNj4FALpArm1J0b/JICMJY6cAjlUjhOs/MVpKCJAyKaZAgs1SbcWhOJ7X2Fo+N22OuYlRNttracfMzcSJE7FgwQLs2LEDN910E+68807s378f33zzDSZNmhRTXcuWLcPNN9+M1atX4+uvv4bf78e5556L+vr6sOdlZ2ejpKSE/e3ZsyfWy0gYnAFD9kKlEtVNWjI6TbdxGKHg3MTIll/gBy/CrQzOhYKbiZuWgPfHEPLcmJ9PG9OOKigdQEYKkKVbIaoam9iXKGWfQotLWKTVut805aYwM8UY2AWfBZgyFNsxN6baucNho6VM9VhMhlH53HCVh3HKBiFIcTiQkxbaf6TBvLZUmDHDHA3sTnEi28TU8M9bqEUzARNzE+CVWsW2L8yDIGVU7MK7qZwOxfB9Ma+vZXY8p32d5UkBgaGcHKrzGUkvuXMO6tFVPHPDm3ME5oYqNzbsn/afyCLZXjK93SGYG8HnRlEg5LjRK6DslFNR4HYaa0sxpcx07wWyxsYs1SprS7Vnh2JrQwmsuzXaiRIx928bZqHQzFDwCRMmYMKECZb9GzduxLBhw6KuZ+HChcL23Llz0bVrV6xduxannXZayPMURUFhYWH0AicRzqY69ruXswJQNefFbukEKhSWxE9cOJMNY9w2YV/tfBI/wpYOtyb7ihW8cuNK4aKlTGvZ8LAz01AnyYJ0oLZaT/tPaXY9bDWcrwg1aW07qPVdYaaTm0g50wi4DMX2SzLZTlPG+aZ9NoOwwdzw90IsaqwDRCcibR14rahJSbKRkU5wnTJTUdXoR2m1F8N65Ajl60y+JszJO8ovovwMNzNLpbmcwmrTolJmUpgUzqHYwtxov8MxNwd15oaPkjKqNpgbtsBnox+EYynM+jSNTMtwa4tgZntccCga63i4zsecp432NSaoIMNwBOavjypH1U0ONBEFGZxcos8NPZHmf+INSUIH6P9yqRpsjrJrs3nmqALndjlEJ34mNzWvQfgXEJ8H2/sTD0RSVizr3bUz5iapE3PbUwIMxKF/2xAbFTNzY0ZtbS1ee+01HH/88Rg5cmSL6qqu1r7cO3XqFLZcXV0d+vTpg169euHCCy/Epk2bQpb1+XyoqakR/hIJnrk5KrUSgJF+n0DhkvgZCeIUdhc44poY0VJ1vFnKYtNs/sPk1f1tUhya+YXWbSWHOOaGKQZGPVQ2ysBUNjRxPgT2q08bVRMWaUUnBj75Gu97CSgic2Nj87E6FBsyhjdLmcqbrs1OuaFsCDNhKELl+vk2F64Xyc+wCWvW70Mjl+fG7JRqBm+qosfzMw3mJM3lFJZcsPjcmByK3TYOxcLCmcIHW2izlBn0djkUsGixpoBqu0AnVUDreZ8bVbvnlBWyy3VzkPO5ISYlXVEUZLpTkKJTIXS1dmqWEqBRrYACi1nKdvxmjKbYH+Z756DMDadIieZC471mqrOJgbJpVjge/7WlONjWbX7pkpDEL5FKQrL6rw0pAgBi798jzSxF8e2332Lq1Kno1q0bnn76aZx55plYvXp1swVRVRW33347Tj755LDsT1FREd588038+9//xr/+9S+oqoqTTjoJ+/fvty0/a9Ys5OTksL9evXo1W8ZoQKOlACMcvFxPv69CQZ3O3KSnGMyNwg+cMCYBPlrKMnBF6cAYDpS5cTnFr05LNlyBWgcra/7SpQwMv2Aj87kJrd2wiCkKnrnR/B+ookCMJH56Pyqm6w81sGvRPuFeOKJfl3lChLAf4Jdf4O1BimgmC3tftMGfrh4uRv5oEz69F5meFKHtqJkbTrnxpDoEhcbsc2NmAmjZJlMIO+s/kboRylCH4lwbsxRVRhVFERyOKzm/G8MUqv3DOxTT56CL3m+lNTbKje7UVpgO8HmYNPm1tukaX2UNYlt2juYEdllwrJMAQXTvo11tNIGfZZkSU2eYGV5xHydR/KmbEL/pLqupLeFIqM9NIuVv26Ychqj61+Za2qtDcWlpKebOnYs33ngDNTU1mDx5Mnw+HxYsWNDiSKmbb74ZGzduxPLly8OWGzt2LMaOHcu2TzrpJAwePBivvvoqZs6caSk/Y8YM3HHHHWy7pqYmcQoOISxaCgC6OTTmpsKrr+IbUKF/kOvMjfbbYR2zANgzN/F8eKhyQ1eRZoqBRfm2MjfUK4E/ThmYyoYmptykuyL43BCCrunirsIMJxS/UITVITA3dtWFase2bTuHYr0tdm+sZjg2GVE/Fi4axyyJ7de23i5VQA6aEtLRvnMomiISEKKpbMDrWPoGVZwA7R7wpii3K/Q3jaLYR0uFzDIdyiyVZmeWMtoANPamoakRVQ1N6JGbJhyjV1znszJYnbPcQGmtqd80xZKZpdK5NZlMUYmdPARlXrA0DZaFM6kZkJqlVIQc7BXT+2h1KOY/DBTrA0oIS9gomAsJHy1lUtJEnZqBN6Hypr4WIxLbYKFL23mG4mShrTE3sfav8FyYfrQn5mbixIkoKirCL7/8gueeew4HDhzAiy++GBchbrnlFnz++edYsmQJevbsGdO5LpcLo0aNwo4dO2yPu91uZGdnC38JQ8AHBzEiHzoTXblp0m50XZPx0tsn8dM2WIZiXrlhgyctZzgeNhc0ey2NlKI1WXKq2DAHPHOjMOVGOyb43LBQ8HDMjbhHNEtx0wMxfG68AVAnhrDXaMjI5axhk5iNQ7H+j5m54VupMy9ySCdPoXL+iEUqAIYCUmrKdUPNhRluzbFaYG4ixYLryM8wlJu01BSBrUkzZygWJkjj2WwKkedGYC7MDsW6cpNrY5Yy+zHRcHg+Ysrs41TnNTI1032MuTElQPT6g+wd01hEqmDSa9V+0DW+mHJjucfaFZIQZIy4TR8w/QPB5HRjdQRXTXUQpsBp680Z+815buwdio3f/KORuHkzCuam3TkUh73B8UXSnKKbgRY5FJvraEfKzZdffolp06bh4YcfxoQJE+B0OiOfFAGEENxyyy349NNP8b///Q/9+vWLuY5gMIgNGzagW7duLZanxfDVCps5Qd0s5XVo/ja6LSXVQeB0GD43YnyEvqwAOOXGG7Bmyo2DWcpHmRtqllLNphlakmcO6FeuMcXR6yiwYW7omljhFHnqqwMAGalOZKXyhcUJ1mBuiG2dlomITT42+2y+MM1LT9j5MbAkfikG5WZxKLZxZmXXQUTlxhzW7DWtK8WciUO8rXaTXZcszucm1SmYpTymtaVEnx3FNlpKyFAsjIH8quMEZXX2Cfx42WhrzKmYi5iyRktpfZHFmedo2LywLpcCVOkLdWakAFmpihEt5RAbpmapgw2E321j0tRsduacTnbKjZFX3B7GtYtsJ2AocGkup+0HBVieG8OsRyE6FBu/4xoxFbGuVmBu2hzrES3ayTVEI1tbVtQQg3KzfPly1NbW4thjj8UJJ5yAl156CYcPH25R4zfffDP+9a9/4b333kNWVhZKS0tRWlqKxsZGVmbq1KmYMWMG237kkUfw1Vdf4ddff8VPP/2EP/3pT9izZw/+/Oc/t0iWuKBJVG7SAtVwIogKnzZIsiibFAJr+CkA5lCsMzceLkOxOWonHsyNvmimS3CMhUVp4cFaJcZkwJgbXUnhmRuPKwJzQwhTigCgIMejSUDHeJVw7YDLc2PvQxNqIuIZCrOvEP/b7HNjXvcrqBJDcdOZG7popuZyY+pF28vWlZssu8UzFXZfLGHgUXwN0RJUAQCoWSo6nxsFhvJjiZaym8C5iazCBzTp61HxoehGHSJzk8fCwa0+N/Q+1pmipfhrM5vzaFh5AVWWQ9yCfLcmM/W5sbyLwqCtHxX84mwmqBDOvOY5gpok+WewvsmOueF8lJhDsfV6QjE38V47k8HWLJWsaCmhkThWZa4rWcxNW0aMcrZnh+ITTzwRr7/+OkpKSnD99ddj3rx56N69O1RVxddff43a2trIlZjw8ssvo7q6Gqeffjq6devG/vgMyHv37kVJSQnbrqysxLXXXovBgwfjggsuQE1NDVauXNk2siPrzE1Tai6I4oQCgi6o0qOlHEZUhJPAwUVoCHSyYjA31OdGy1CsH2cDR8uZG2qWYsyNZYKnQnHMjSKW0STRlRtdSan2+i2mm9DPOkGWC0jX50KaXdeYSDmGCJxZKhiiTgtzQ+VWrMqajVnKSqqazCQ+LuFaCm+WEk0IjLkJpZAQFV0z9QUuG43VuxXFWHTUWDQzNAtEr82MLrzPTaroc5PKm0QhTpahl1/gzXr2z1yp7m7WOTMVTqd1aGGTs/5vrk0iP14BVVUiLr+gl6FJCsVoKYU5JtPn0AgFF02MnXTl5mC9OCBb1ReNkdPq4Y7aze/sOTEpNxCfA4dNW3Rc8Lj4ta6sjdh9IIRibqyrV7UEEb7Qk+VQHMn3p/kVx7GuWNpqY4pOzP1rcy1sV+srNzHnucnIyMA111yDa665BsXFxXjjjTfwxBNP4G9/+xvOOeccfPbZZ1HXFU3I4tKlS4XtZ599Fs8++2ysYicHPi1SKpiSDpfTCTSWo1CpxAZfJwShoFZ3HNTWR7JXbgCw54KPlqKwmKVa8IL4AmK0FPMnNrEXglmKKTdWRSDfAzgVgiAxJpq01BSoKgnD3GiDcmE6wa81unIT4utXARcKHgAcNi+Q5RvM5hkjNr9oQ0yxc5iZG20/vRcpDgUpfFZnKKZrNCmIJihERZbHiTSXE43+IEqrvejbOQMKDJ+bLI9ZuYl+wMhOcyHFoSCgEqSlOtk6Sx6Xw3IvzA6qPHNDCIHTGaZdbmI7qDMhBdke2343O/ZSv5zKxiZLGQJtfTJaDc33AwAFWXTtLHEJBsrcsNQCLMmfUQYwfG4O1uvmHlEfheZQTBitFdahmP3QfoU0B5nMUnyuJSMppLigmjkU3M6h2Px8ORxa2pn4zv0RJr3wTknxFCRB9ZqbSRJz08Z0m5gVL9vnoh0yN3YoKirCk08+if379+P999+Pl0ztFzpzE3SmgaTlAQAKlQoEiYJH1rrxwmLN6TnNScCn1jDS3Gjf0RpxQ7gvd8OEZPiQtDhFkYW5IeZBnsJGVj6xHP3hdCjonCacyRLdhWNuAMNfh5qlcrZ/ivySZdrkyd4Xg7kJEO0vlCJkhsCtsAu10udvr9iNhRtLucgee+bG43JyjXGTNt9+5R7kbXgDLm+57XUrioMtcklNU4qiMJ8buq4UrTKkomSz4XQozOyTlprCJk4+3w2TmYNDUVgZQjQzHFNKmOT8ZRh9WKorN4XZHtv7YPZjsluCgfcto5O+06GxSbROytzU+QLsfiiKEVJOnyVjJXXRV4UyN7/VqbjqKxVrD7DVbYUrNPxozMwNwac//4alxWXcfvoOqfj/lu7Aq8t2AgD2lDfgzRW7cEBfFFbh8tyUNRDc9tlefLW5FIB2b3gnYrMTMr9GFter4GGXZLPliJG5SViem5AbLaw3zICXULQx7SbmZ8aOubFy362Fls+QAJxOJyZNmhQTa3NEQs9OrKZ4AF25GZxeDQD4pcKB4lJN+SlIU4V7bwxiunKjz5LpqU6k6KM9pa4tSfxaZJaiPjfGgBgpG6641hL9MjZkGJBjlM10pyDT49LPCy9LkdZdOLogE6g7hJxf/4Mev84HUcWFM9M5rrE+gIhgvcX5lhhzmDgIV9X78I+lO/HRT/uFcGzAmCyqdafV9FSn4auhaA3QcGStbgIUf4mM31Yg/+BKrZjD9GWuAAXZov+IAmMl7Gx9CXQqZij2S/SZMSZyGl5dkO1mzst8iDgnvFAXHyreFFQ5xkBU9Mwbh3UdoXOWm+12cjfe7HNDmZuaRj8CqjVRHX3mM1KdetSYtj/T7WL+SLzfjcHc6HKq9r4qnT0EGSkEARVY+hswb6P23lozV3PXy13ngSov/ruhBB/+aOTWokxftTeIJxcWY9aXW1Hr9eOjtfuxcmc5Fm8pgxmf7QI+21zFGKguWW4x5QP/G1azHr+PwnRKfBCpMpY13ZmAxoWGuJ9tTDGIGm35GuIoWxtgbpq1/IJECPi07MdBpwdwaRPLVQO9cAZ88MGJLv1HIr16OwpJDQRTD1+HAsbcKIqCrlluHKj24rC+Zk5cHYpZKLjhc8M/03b2f0OR4daW4up87ESCd8v6wOVyYdKoHpFNKvrxu45VcPaYIThxUHdg288AoIXVBziTBQFSnQry0hRUNqo41AAo2SbmJqRDsREVZOtQDOBAteHIXlmvtWsOTaZ+Hpq/CP+Fb+NQ3KA53Lt8lXofOEAUzWagQLu/dPkA3n+EMhn0GL+MY7RwKMCVJ/XBOVUFGNItG+V1TZgxfhDLikxhdShW4NYTTBIA/iCBNSyeHwQNBbHOr+3PchvDisOhcGtAQfg3y5MCp368pjGAThmpggJqrCulKci8L1hBtht1hwI4WO3FUV0yoUAx+k13KCa6gmA2h7kcBLOPq8fOYCGe/aEO9U1WpoEQ7QQ71/+yOu1eNQVV+FXA5TAU14N1hsZ9sMbLGJsK/Xnik07W+LTfpwzojIkjuyEvjb83XL8j9DtkvzgpSRxzE65ehwMI6ov5UrNePCFq1fGsOI51RWqqrSk0HGLtX1tzZNu5vrgwNxIaCPW5caaBpGjKTY7Di7N7BnB6DwUThnfDhP4uZLrME5VGQetTnpDptkA3W5Qx5cakUcSBuWFmKYh0tl2GYuoQKUZjGBudPcCJfXNxysDOOLogy1YBEqEVyHQpOKV/DlKcDlGh8ddamM6CTG2yK/Naaw3FMIuTuPkLXQMfkl1hWq2aTuiUKchNSw1BwXJ1N2qpAFxNVUwIha0JpsKhGA7UhlnKqtxY8g6FgeFfoiDL40JRYRa7j0d1ybTPP8P9dji0dtw0102AY25Ml2jeoCve08VSATDmEbBGoDkUheW6oeHgCqfdGJFShpmMlrGa84w6WN4kk68Kjz5ZKiYM1Opo1EPejceBG6QV69pS5XXG89kY0Cp36nH6hzjlprTax95bdn1cnhs93yCG98zBCf3y4XBwiRJt2DE79tPC3JjZybgjjFnKwX0rJ2QSTxLrkVAFJFEKWjwQa//aKDdHmllKQofO3KhODxSXvqCfvxEOXXHhnXAdpgdDNE2BPSR08rMoN/YeEDHBEgpORN7DLs8NhSqU5ekecZdlKQcz7JzSVM4Hw9/IOS7rfZKpDaIsfT5fnWXbYD0sEpjXReJMHJX1Wn9TcwNVMETmhquKRblxkjRqjA1VbhSHgyk3ClHh4JgbwyylMAdbeu/tFoDkYReRZXYSDgXNomZVQNxcluKwSz4IzI32L03cyNcnymHso+tEUYWO+dyACGHggNEPGnMjKjdEJcxkyByKTTII+XygIFPPwdToJ+KzLzzblLkzrlNQbvSM44oueHkDp9zUeFGmy8f8ighl+4B6fRcfCSas88V8ncx5bmCUsWVuLI92yxDRodhkloq7AAlGMn1uIvVle4Kt/NzXZCtDKjfxhM7cqE43iG6Wgr9R9xO2JgNjILrromIdvOggTgdJg7lxsHObLa6NQ7EQ4m3L3Bi77FgZTYngFmbQf4TLUGxBkEvq1lQHPs8NABRm6cpNo8Fwsdqi6A/xC90AH31TUS9OtrRf6GSam+7ifG64yZNW7qsD/JpJgik3igP8p7miwGAgqq3MDT2mRuhD0aykl7VhTOzPFY/RLRoO3hRUOedqKjkHbhKrt2FuHMJEbN1HlRszc0OIkSwxk3Osp2Wo4kfZtmqvHyrR6qZO7cTOHMYpihn62lZBopnfjGeHuhAbKrHKUZXUxAQYzI1DN0sdqjcWAT1Y4/3/2fvzeMuq8kwcf9Y+8zn3njsPVUUVVczIJKCS0qgYkCG2LYmJiW13iFHTJvhNjEZtOl/RxF+CMTHppNuhE78dTFqjMSomRKMIAqKIgiAigxYUFFB1a7jzvWc+e/3+WNO71l57n3OLW1WXcr98invO2dNaa6/hWc/7rHfpSclSvS2AIqJgcKDgUwcQQbG7WsrRSFFjTn1dH+vBNuhGnkk+71kn4zkOBiK2wfKzZrefBxSmzM3xaZyslmJZAm4AcCZWe3A9G3OYG5gemA44Uw5zA8iOdh2Qsdk40wwoup+yagZ1Vck0cB4BHfSLXpC0FiCvTu4Ql1AnSs9MSeZmv4e5ibslpW4MtnH2RSLMzaxkblydjjpHrESyby7yKH9bntH3ynZqYN2WeLeBAaVUc6OAVacbYqnuaG4S3BJx1u+pLqOl6l4hq6IUh6Q+2mXhfpE7L+hVXkFggyx3+wUgnrkBYMW4AQgLR0GhfB8KHI2VjQg/GtJA3EXkhKFSMJW80e5azA24eBBn9r0AUzcAoN5V4Eb8PVQz4ObRmWU05bJ+DtGGabs3bjyzzN0nKGZOPmxWzgWnjORynWzDMDdHivXwuFeOhm04sLbG8vVqbjaOpeBmPU0xN9mCFhSjU5cdEJOunChFbs3SwMRLUW6pIbWaRg22rrz0WbilnI0zARjxZ8zwSMkc112kU0UqeWIAurjGEFLNzaoFIQBgWmpu9tei94gjmPsRFFO31NyKEhSrU6PMjZbXQABStScYAGDZBJ4EBHvDWAaqyTFIzc2QcUuFIcd8rQ0OscpIiX/dzTxd84ETvzvIcy3zu7Aoc+Ou0okTFCvmRu0Ez2C76lwGCIDOo9GkmHe0HMPcUHee2pdrXj58smJYEJ6guWEMCFgAdXqdxNRBpMbZTMgsYW5qjuaGgpsfPL1gPVOwc8YtpbxblltKP5KTp8e3oUicmyPO3CQcZwFhlI+0W2pjDaR92wYDAJY9a8E2N9elbqnjzOT2C93ArJYSbimmmRvVYdLl0+K7mnExhRAAIKLJEEcIc/OsBMX2aikAegdqawZJLPD8HBW6mrjCPPac6L312V2quVmNsD/KLbW/jqhFJhMmP6bIFCpxNTdmRq4HMML2cM41yLSYGzFS2gkgzA0gXVOMaW2GcEWK1XCMiXKfXW1hTrICY5W8ZgMMY9G7w1Cn2KAiwS1FQJ+4zmFuumZ3aW+V8GhulEZGlHn03hR4qZ3RFXNDs7iaoLlx3VIKHE1Woq4RC5xptlFUCPl47aLVV2qWVbql6DYTHs1NIAf1WQJunpy1qcX9Sw2y/QK3NTeqKnnehdl+wcPcOO/WaMSO1CCaxNxQenSdn38kWYKjqbl5zgiK13g+YFP/qVvqODPplgqzBSIobhhZIBEq0iWhSnOjWR1SL6YdzQ24XIK9jntL5Qm4UdoC30opkQvxnS4bZ57OQWuDE10qMR0WATesVSNclfg7SZmb6JNjnxDhuiJuqSi40XF9JKvSkm6G4RLR3ABkFZT8bcVhbpoLUlCsWA3BiOQygd7Be/9SA7NyxKPxaHppbrz9CPktbsNNkW67vqn3pJmbThh5d3E1TjM3UowcMHvo9Q3OBtzY5Q0Y5kZFaqYAQDFeB1ea6IZcL92n4MYNQ2ClhgFgASpSF15vd03d4Z48qqoZcmujT6W50YLiete9UtvMYsMqD625Iftw0UkFZXFUkt18xMW5Wddx0+qrEo4zduSYmyMKQI4iyHjOCIoPwy2VMjfHsSlwE1C3VE2LhQUo8buTmBplGLOEqaoTX211tRuJMkDPxozmhrileq3MoUyGkQ3b+SC/+HUPcaZGECIo7tQi7UwxN3MNoVHpx/xPNzdudrm1/Huh1kKHrBQKuRH9jlbyYsl60v09zE1ABcXclJVyPc4sNjRzMz5glmx7tU0xps6x3FJrqCvq3CJZLWX2ZvKxb6b8lz3Mjc89Ru8zJkHcfL0Nbg3oUeaGujjHBwo6Rs6hlaZ+dxME3GhCgTxfAVIBChgGJbhpdLoU9UJpblSClItrdqVphUEQ4IYhEwRodU3sGp/tX2p4NTcDhQx8DlX93pzdzRM1N6S+rp/1YBt0QdP6vd5uqWMEQI7sg47Sc/q09ch3ytwcn8ZaKs5NASwn16O2G2AM4JCCYu5zS3GrKlBhajmf1TNXtdRVYJtnv1pKb7+QTWBunAZo+fQVo+BobhgRG/tWVGmLo5q7VHNTi2h7RktZyFW8WGjYYYrjbkk3zjSaG9MBq2XluQxDholl+wdXmtbSZOUaVFGFzbJeFi2v5f3iW1aA07x2SxnNjXazkWXNapnxGGFueq048y4Fp58ddibJtOYmS8GNfU/umX22Q46mJC3KlLmxBmKVD/Ob0ty0OiHq7a7N3DQdQTGZFGYCpjcHFaBQlNtE2dRlDsed4+aTMDeNli0oFsDdXKFWXtk7uAM1iYkyAcNcU5yfzwZWfB/Fgs0sNXSdC0MKbnJ2O/GwpZR9i/YV0e/runFmv4Ji0Ir2XHZLHUnbyMzNGtPmfScpc3N8mnZLFS1BsZymOztpOzMuhVXARHwLcq4a/BbqLWjqbx06EXe1FEA0N+oHt6NVzD2PxgIBbGAG9ApAF5P20NbcuMYYw2RF3G+xF7ghYkzm/ObbF2l8oIAhGVhOuBEMIJrR4KZop5/R4HzKLSWYm87wDgDCLYUg0NoMcMMKUV2VcodR5qbXruDUDICgzE3y+ZZbSg7KBUtQbDMGPs3NKlngZgTFLnMTdQ+Vclm9dHyh1rbSukrADV2KrcuNrJia82luHKCutjVRaQNjGNDMTegft7XmRoKbRRvc1DuSbWUMs01RZtPVIiYHDTjdPlbR1yqA3go5uvJ5lULGFhR73jedC9luRPvt2tujrJf1uJnF3BwpQfGRdEv1etZ63roHC3Ysbc1pO5rvZO2Wgpv1Ms713lI8UwDUUnDOkem2ocK4uyyEOkfPLfUoTMCN7MSV6DKkbqlnUZ/UMlWquTGh8uOYG8PIGAYymgj1S6LmJs6P3qHgphZlfxjDdEWked6jcbCZBXNtJEvkvBmJoUYreR2gb/9SQ/fVIed6YDMDl3mbLCIoFsxNOHIyAOmWCjJWItQl0xTcrCi3VJS56eUqpJa087f1O+zQA+qTcUsZVtHr3pKDmGIh8hmmXXbMYW58cW4CxsxycLI7OGDHuaE1ReVtmuzLNe9jbhJAoVrBqMFNm9Yj+jQb3OyPMDfieCYINHMzXS1q4AUYcEMFxXRftEo+S6qiSawlCmfRNLnn0O/heqKbfge9Iykodu2orgZbTzuOmJvI5XxD5SkFN+tlnQZYKHqsbqYIZAtQDT3o1gEWCBGunr3aHQbTKzPcPYrMzF6BG7FnznrsLWVHKAY8YCRCkavzCCviDgbEZUXdQlGLoZopc9MxgmKCbjAlwc2Cs02Cm2Q6I44MzuREJU4eG8jr3bSpAJRzELeUeB9GSE0AAudA2AVWD4qsEHADMK3uZdxoKgwD0dTMzZiHuelPt+T4kNCb8aGH1TM0uOn0YG5kCasFRIP5wKpD3tU/jg5ntGxWTNG0rrSM5sZmPYWp97D70Cpqcif1ccstZYObiMsnVlAsg/hRWkuCErrdAwA0pOYmCAxzMzVU1IAVAHaMV/S1nIt0rkohciUnrrXTauqVybO/nUcY4COtdUhyS1nMzToPckdzRdMRJYU2zuCfbIfhlkoFxcepyRg3gGRuGAPyolPLhE3B3HCuNTcR0EAGbukI0cdURzlfawk9C73gWWluoqulejE3agZpDzb2wCO6asXwHAZzQ5eCd+qEuSFlIt1S84341SneR4DmiDA3NfF5rFLQzM3MUpPQ/NzjljJmgbeVAwDvClfk8HYAKs4NGXx4qMcBuqz50IpaCh5dLRXPvkTNLm8WO+i5bimtuaERipP6KcctVSHghjHm1Yq4z6PLwWk5rpDVUtaeZzJz6j088PQiAKCQDTBAdjTnTl2OuHOYzdyYRyhwbpgIrblZlDt4S2ZN7LbALM3NdLVg1REFbhrtECstcZ96m+nyipinzWRIZGOr/JzL1bFjEqH4qLql1vPWR9O98lxxS/V1QcI9UnBz/JjcV6qTLZu1t/kBAEDQbUjmBlDYJioENNFQXZZDzezna20AfN3Avy/OTTd0OlbnYd7tFzydg/qJcBu9E+QTFHdq0XksdUvVPG4p782ZvoFPUKw0N65bSu/VA7NUnOopADHDN/njwPJe8bE4DJRHBC/HQ2RbS3r3aEZE5Gog3HVwRb8TytyoHMVvv2AzIe65SeAkTpBKBcXuc31B/NR+kQN5pl9AwPyaG3cl12hFrZiy3VKrhLnxueYUKPzBUwsAROwhTkAAh12Xfe63gZz41GiHiYJiFedGsXebZJusd5ncV4wwN9WidiVnA4aRck6Log9KFKhj3OTN1icmXe4Ew41b5P8szlNgHOtn1nicwNw8VwXF2o7CgNxLnH1MbY1pSwXFPyWmVkplK6aJSOaGdergjFl1wXr3nCPTWsJZ330PJp7+qujI1Mk3/jYuf+D3wBBqXUHmyTuBf/xVudz48BoI59zEuckGOj1dHu1YqRnCiAxxCS4QPYv31rSYtDsbZxaevB0vuelinPzv/xn49/8GNBa1W2q+3ok8l2puLEExs3+jnbJyS42WjVvqpgf24pIP34Yf7V2ECOAnNTdS68EYx/DBe3D23b+P0soe9XBgSca4KY2CZXPo5AYBANnGPNl+ISTaETEQKmBZzme0WwigcW78xeUz5g6GMe8oLoifEgVbu4L7yEKu3FLi4EA+sETktssrmo8gMOLpb/74EH72T2/FroPLCDnXriYa5I4CIwUglAg+spmpE/xO5JfU7whzIx/y7b/G6d9+J37mq6/CCbs+BQDI7r4F+PCZ+F/P/BI+l38/ThgU77Gm3VIB5uQu9dNDRb2ibmKwAEZ0RQdWRJ6UVmcgz6wyjVvaHVCmlEXflzmm8n6k0A2AfT8AProTeOTL8vDREBT3SNN62Dqw4WuzDQZuPO7mWPvhPwMfeSHw7b+OuSYFN8ePyZVSnWxFDBYsAApiUMt0GgDkaim1FNypSOW5h1BZ3o3xfbfLwYYLV9f9n8Lk3luwhR2SwcM4ck/eDhz6MbD/wcNuiMvNjr60mAt0J2ncUiZt1Oi8LDb+CqdB/MRfL+sQ65ay49yUHvkCSrW9yLaWgPkngKe+h/GSuN+SXH9M7++baBoHg5pgUKQZaEHxSCWHHeMVZAOGdpdj72ID3909h2Y7NMuNpUsiADBy8Lsor+zB8DO3maerrRfKowAL0C4MAwByzTmyYojrNFdLWZw+NaiTc8rkQMwELxlw0jN8jAm8x/zXF6UOq9016fTuW6QFsgbc2IAymg4XTJ0xXUXABEh5er6Oe56YR61p3ETVUjainwGAMzdVrU0nT50c0O4jkbboNfqzRHxUcwMA6LSAR7+MbHsF+dYCJp/5GgCgsOurwPJeDPMlvDD4MS7MPSGu64qalQns1VLP3zqCXIbhvBOGAZgl72pjzVon0OUlypS0JfrydegAfzs/KqulXEHxQ/8CHHgIeOCz5jfg6LqlnqvMzUYDNJatgblpLgONRaBjAp9uNEGxbzva1A7HtlyIld/8Dh58fC8GWgcBMMLcCLeUwDbK9WRXgmxjAQAQqH2VOLf2J5rGHO6tT6IbAqwxL37sqKXhazcVtr6cz6CQzSCQAdFC2SfFRijuobmh34XGKAYAiTOcrwrcmKUkQaeOjBPtFyv7MTgghLrKjaPS7yZZu7QYiXMDWJ0vZ0xv5TBaySMbBLjp//lZ3PLIAfzZVx/FQq2thcuFbICqXCoeBNLlCCBXP2jysCTdUqURBEEWzfwwgD3INmatJeOGEWH4l//nJdgzW8NT8zV0OkazBPSK8tyfWQwKKSvmHnMExT7NDXcHOwDL8pVV8swCtLbORabF0eGcPDGAP/+l83Dbjw/iX36wFwu1tnZRjVbyKGQzWGkqhs7ccLSSx7f+28/hwFIDuw6uIMsYOJ4m6VTPiLro1HtQ3j+tuVmxgy8GHbk6yglJsC27AGAIkjgEY0ZzM1UtYutoGff8wSux2urgob1LGJUPOrDaBfLAalc8v5JzmRtTpiLtATi6Vn9huaVi3IpHbBCl/ZL6eyy2X1jP/NHC5+t877hnuZ83gnnadaypdpFx3eepW+r4s1wJfPQU1Konie+Uuek2wCVzowXF1DhHpikASxC2TL1QgySAzZkFcA4s1DmCugQ33RYO12b07tZyoJbP7Eh04+dBjL5GrJYy6dfHSedMgfyaIhQ7q6Uyq2LAaQ6eKH5cPaCFmPV2fwO/O4jTNM+3RHRZwLg2Rip5nLNlSByvt/T2ANNDRcJAKFYOyNcPmHsvG7cUAoZ2fhgAkG3M6ZGdBvEDxF5Op04NYvtYRayeIcXubiPgy5v+7NW12BYpKw+zYa+Wso9ZJtO22iZuKQKcfJGS3fQyBlRLOZw4JgJfztdaGkwqPVIcwBsq5XDq1CA2D5VgbVwacw2jfa/llpIDtHQpdjOCncuETYB3wVrCb7nCRXrGwlkAkrlhwGIjRIcbcAMAQ+WcLrMocyMODBYctxJoHkzQRytQpo+JkmaCbGIdzRn0VL+05AE3z0VBsWd12pF/lvv5OWZtORu0wA1IllJwc1wZB8B4aCYwUlBMmRvogdFhbpoLAICg2zIAgTA3pxSEYHm5XgfrSiqwS1ieNZqK2TIs9SUZTWerAcFfOa1dsonLR5kz8fS6E8zBOOaG7C3FQ2QWhZ6lOXKq+HHlgNYq1NshOOeOW8rcl0eAl0o7FROLA2PlLLLKDcDs+ELzarAdLBI2iiMTKuZGgRvbLRUEWQNu6of0Sh84aTZptGfy9HM/zI1xS9F7Ou4hGEYlOvMXP2jNjbX9gs4hSZyKc6PAje1ystIRmN/NOea+o3qH8Lbev0nFsvGxMHa6ZXI8BWeBQkbrt2e1lBSDN0vT+pJMtwEmmZvH+GYAwGBbMHXtkKEVMszWRTlU88yK+K2So8FNzdbcVHK+LpggMJn2jMXc2GVsl4PdjtfF3DKlzE0YWmDMJO0IMzdHgvVQaT+SjIqPVt4wtgZWycfcpILi49eUlsPV3LBOHVwvkDYDI7nSZm7U7I0wNyfmFwEArZVZc9mzADdKHDssXSyqU+xShtlzb2u1lBe42JxP6N7Pshiq2WGklOunOUzATS7QVzSl6NXnSfOtsnHdUkpMPDmYN2JYMD0Dr7W6OLAsl4EPFSl00m6LXG2/ubkWFI+Aam4y9Tm9WgoIE+c2NkCT5dBD5G3/FmVM6PnmXq6gWPxVS8HbXZNOGq3ZTZzeSiDHQCMq+wZiVw+kvitws1hra/G8ApiJIQWoUTG5FhSTvNNzCXOj49zId9cqjiEMJKvZaYK1RSXZJcFNpXlQ36bZZdgvo/KNFO0EqtSMSp3W/lWRpprWKNllyhjNg4l8bW/SGpMfHKnx2WVuZP0O20BtFs/5CMUUnB1V22DoZi1uKS9zQ69Jwc3xZVy4G4QPJAAKdCm40CJ43VIAMkRzw9TNCHOzJSOO89q8uUiDgMNgbrRbSjI3gQI3LmBx3FJ69k6WpFv6G3NNl3Dj/QmKpYWdyE+dbAWtgS3iy8p+lLJm0GrIPYmSJgvWqiBu0ijExOLz9GDecmVUi1m9w/UTh8TgNl0tmIGIi1k9AORqB2WHbjM3LMho5iZTP2gGqzjmxlM0a5mFq1vG7hYtP1PmxtbFiC9qKbhv+wV7hmdHKO5Lc+P8pu4/XMojYGLF3lNzovM0bil1bQzA08ArCgrta1T9DkCZm2Y7FO40ydy088PoZGWcqm7dMDehADfFxn7k5bYl9S5wYEWUw2iJWdGBVXrG1WqpWiivkeBGaW587grGnoWg+AgNnK060Fw035f3gralo7Yr+BFhbnTrW/97a9tggMayw2Busg5zs4F0RCm4WUfj4JK5AQCmmZug0wCHG6GYWNhFRrmlwrbY4sBhbib4nDjemDPXPSu3lHBtDTuaGxPnxkODyFwCNhvtiqNVR+yLKuu7l/kadUspa5Ym0S2Nii8rB8CYWenSaIdSUxPv0rGYHRC3lAVucpa+hTGmmYPds2Jwm6oWdbID3tECcMY7QGMJaNV0zCOURsGCgICbQ6bzB49hXOJLKYilLeLdW27e1elUN2Qdkl8KWnNDV0vJ9FjjsB3EbzAfgG57QNOsNTcW82AAUDbD9LYTqrzVMvmkrRTs3ymvFr3G3eFc1aEu52I7EslKtAvD6GaFBijTrSPoCLD1GBcAu1Dfj5Jkt+rdQAiFAYwWHU5WflGs1FydoxPSODce5sYqnajmxp9vYTou03qOMfRm9Vn72NI+J/Fx/cZ627pmUPzxx6tYX9vIgmLLDoe5IdelbqnjzxgIRZs3bimtudFuD1J5anNgnASjU4M7YW5GuocAALnm+jA32i0lmRs1CKk4N712BacW2dRP3oO23TUtBQ994GYKYXFMfOnUgdYqBuRav0a7aw2i3DPAxT+b4YCMTjw1mDfARd5OxStRO7JPDxX1PbPdmn3P+jxQl+AzXwFyJaG5UW6p1jIyEgwFCL0shE9T0mu1lAsWlAUJrZsGtvPFTUmKUMw935YVc5NzmBtPOt2l6DotMG4oVd4uc9NTmG4xN25dhhbEqzg3FRIap9bqythRQDs/gq5kbrItw1Qot1ShfgBlybrUOwz7ZRTD0SLzsiZD5RxyGdHq51tMMzeVvJ0fVxSdJCh2tVT02BFzS9UccLO8N8Yttd4D91Fgbo4KMFuD6+do21qAV5zm5pi5+KKWgpt1NApewBhQrIqPsiKIwHdy5kgrzypZaQNI0MKNbxtApXUQAEe5TcFNFAT0a9HVUpLOdt1STiWPRiMGYHW8TH/vknP9rMNamJsp8EweyIkBB7VDehlvvd1VYUuiT/AkV7wnIwaakToIwdzQfMDaI8j9HrRWrGOozwE1CW4qk+I+QYBupoRuIN1/DTE4xO4V5Olfe4lp44wKga3l0I7Oxmdm48xoED/LNHMjEimYCMLcOEBGPN+YqBfmwOSgXd4K3LjRhl3zC4o9mhsC6gCh9ylJkLza6mi3VCs/jI6saznJqnYR4Cku3msmbGEqJ9ilRteAm5EYcJNhgc7bbCNAnWiURP6o6RceA26iDJibvyMmKF5NYm6OolvqSNz7aLANPlpvw9gagJdmbmjgTDp7T8HNcWUcgrnRgmLC3HAmuyfdMZHKI3eQ1tZtiVgvK+b3TNjCCJZR7RC3VOfw3FLtbqj3MNLMTcQt5b/WrxNxAJDTwa65nns0N43SlLhPeUT8UJslbqkuaDRcX3FEBMcWuFHMTS7iyqC7OwNisFX3z3Tr9kNqc2ZmOyDBDQsA4prK1pPBjTLfiq++VktZLI76LTq7p2yJBTY0c0MjFOs7yfTQhIovas+kgZwdUdmn53GXqZu0MEwP2VtbGEFxNH9Wniy1F0ka5w6w4yYn8mblrPi72mgbt1R+WDM3YtNTYBVltJBDPSfq4NaMmGjUuwwzhLmJc4uqvMw1mdyTClrzY8WDooJi7coj4Eb99bVFFi2HZ28JbqnlfTgq2y8cFZbjSKU9zjYYuFnLOOKNc0MtBTfHleklxgwC3FjMjS00tGbOPuamNgex+WIgVt0AmGbzGAmfvVvq4HITnAO5DMNgUUxbo6DF39BdfQ0905g4J3T1O5HTYtItmZtuxgCLZmlKDExKd7M6i0GiuQmYv2O3hwniuiKzTbWCZXogF3F/uMzNVNWslsp0XLfUnHFLSXADiP5eu6Zqh2R6eoAbcjg0mfBaXDdCtTIu6LFYHQ+zoSIUi60NbMDn21tqVYEbsnEmwGLAlp1GmhZa3vlMoJnFXrF+SILMJy6++9JA9SEKJLdX54XLE0A7P6QFxTnpllqWMW6apSkAwGZmwI1ibsZccEPSo/I22wx08D+tuaHJomn0CIp9DJgyE+fmCDE3CryXx8VfCm6es4JiBzkfNbfURrM1uKXaPrcUeecpc3N8GZf/10NKQYEbwdzQ1VLW4LbiMDedlvltYAqongAAmGJzmGQecLPGxqhcUhMDBe9sWnxXmXLADaL1NvJdC4rJRf2YepbU3Kg9mQAFbpgBN4nMTZT1cAdxLteoN0OGuYY4Z3owF2FJ6GA7Us4hnzWC2awLbmrzEbeUeDBZMdUQ4Cau4fmlSckgsdc+YL7zzQDp31uK7m3V6RJWAS5zI8pxWYKbSt4cdzfONKuuzPMDZjNSdDdttS8TfWZcVdKPCU0H6wMM6iN1kyrtjNK48fwAeCaPbs5mbpZ5CQED2hURA2c6EG1xqQXM16mg2AVYdt5mmwy1jmK63I0zGaxBRrVPCm7gb7P0tyO2t5QCN1suFH+X9sEGB0cDIDhpWjc7CgPy0Vj1dbhmN+zkczseQfER309sbZaCm3U0zmE0KS5zw2ScG91+qB/7oHUfdFuGzRncBFQ3AQBOys1hHIv2eYdhausFOpBkHJ9HEtsSATNOA1WVKrLyynMv5wd5oZjWdnID+kizNAUwTtxSh0wAtk434gJx7ih1J/SAaIgHZFT9fAYYLgYRfQt1S7l6kEzHDslvMTeVCfVkMJAoxTUFbvydh4996ltM6xhdwh0hBLx0Bo1zY8BNU0bv9QUYBDjaIUdTAqBBEufGFRRbK6c0jWMzTNNWeRsXVa/gki6rpFlSbi+5N481FaYsNTd6m4+yANCauZGam1UUMTFYQKssmJtJCHDzjJRe5QOOSo5b0YFp/VMut7lmgIZmbuwzhWTNzAoCsou8a/4gkDrbR8YUeFfgJlZQfIQHuiPBTB0xl5r1MP+zN5r1SpaXuaEX/ZQzN9dffz1e+MIXYnBwEJOTk7jqqqvw6KOP9rzuc5/7HM444wwUi0Wcc845+PKXv3wUUtun6QjFJogf2nVwzqSYvA/mpkuYm+pmAXAAXJB7UiwTp+eJh64piTPO7tZAFBgkLQWPMgX+5/fWisQ0dMXcZG1wwwDC3ByyArD13jjTXhWkBsEZSb5Ml0UZuDqhaYdJoPcPZGA3FezN65ZiIoS+CeQngGwAf+efxD7FimnpZ4+LyScepjFn7GvEl0zANOBtdRMGKs71smZAuHgMc8MsgGWlmTCGVOTrK2/5GH2+z9wwAAYecC+QU4JiAFCbiWflNh+qjnVl/VPMzQovYbpaRLMk3u04FyzGUyviaWMF0TZ8LiEaFHKmxiCxoLVayyTPDLYqLpJvtZR35aK8wxHbONMFN/V5M9BZwrbnkKBY2zFgbjaUm2oNaVHMTTZ1S3nt9ttvxzXXXIPvfOc7uPnmm9Fut3HZZZdhdXU19ppvf/vbeP3rX483velNuO+++3DVVVfhqquuwoMPPngUU+43sRaKQ6s01fYL4AjCpoxz47lwxcPcqN8GNwmAA+Ac7IqeBxy2W0p1tlRgqszUzSgAiYR8d3U5jluq/1U+NnOj3AKcBWgVx8V9ywrczEX2BfJG0I17UijcCDNyGfh0Gda1KosTgwWdeg1u5DkZ2cDrZRlcsDYv/gEWc2O5pRQj59Eu0ef6COJ+ytFdFaXv6YzvfleNfa98xkQppue5mhsVwC+fAXJkXyw61sUFmxNpMem0mLJqFNzEu9pUXpRzWKWRW6XG6PnyIgUwCnUxoeAS3KjVUmr5/gqKmKoW0SwK5mY0FAP9U8vi+rEiBzi36h91iyrg9vSqYcUqWlAMepFJrXZLmYGDRT4YOyKaG1WWPBRgBgAmzwSy8l1JNpKm9zkVofhYam42EnOzFrdUL83NBmBujumu4P/+7/9ufb/hhhswOTmJe++9Fy972cu81/zVX/0VrrjiCrzrXe8CAHzgAx/AzTffjP/1v/4XPv7xjx/xNCcah2BuAMHc5CuA9KFnOjV0OcBkRFvr1csBr5OtINtZFYJa6pYqDgEATuw8AQCoB2WUwhp4t4V2J0TY7gCsC3TbKGY4EGTBgywW623tXlhpdLDYEKPQ4wdlQLrBgkhvELgpEoNEmMAuhF1AU+a+sgjRlQAiYADqC0CWrITJFOIbtqO56ZYnwIMsYAmKD6EyJcq20eqAQWy4WGt2sHe+jsVaG4wB+5fqmF1pYqSUAYNhgjjn6IYc+9VKqTIQhiEAkaeAi8+5TIChcg4LtTbGygxhq66Hy0xXlGN9YCsqK0+InaPV7tGVSaAxL2ff0OAmqAnQmuFds5wyyAGZrCxLNTqJsmu0uyRqtIycyMg5QUa6MsLIm9DsjBK6Q31vIwhDsLDrgBz7+nw2QL3dFcHtQPr+LonJxDlWJMYezAHtbhdtpsAQN8CX3jrsGkAFrlkJBmCwkEUhG6DZCTEhA/p1uiFa8pmMwap79J4qPYBY5aXLobUENBbNYAwAvAMs7gVWD2ILgC0IMbj6pDgmBfzNoGw9YoWXBXOTF8eHOmJQV+Lg8aLUcbW7CAtZsQGqvFa4peR2HirGTdZhmjgHYM9+mRtYLgzV2TZg1HWhf4BvmaqL2WIUQXIu7r+wB3qRQ3kUGJwG5p8QbnW51QgNUtnfcxvRc1lg+gpBd0ev0yyvpy64984UosidXkfBpGthaKP0TlO0JdJmo9ckpGmt1u2I/pBlDEuiyiQpT266+0qbhcrl89ti9WqQtZd9+zQ3G4qFOsbgxrXFxUUAwOjoaOw5d911F97xjndYv11++eW48cYbvec3m000m039fWlp6dknNMY4VIcO6FlMrgS0a8h0aige+gE2f/1XkNlyGWrTbxcXtWpAU0z9GuVNGFjaJTU3krlprwLdpvWc/cEUtoe7wTstPLRvCfOdQ2B8P4YO3YtN1Tymh8q4+rYyvvv0Kv74qnOw2uzgj256SK58MTbaeBIjB1awNL0zwtzk998HzLeAyedFcjk49yCweghzkz9j05LSGAOGD96DXKcIZM/B+ONfBD71buDCNwKnvlKclC0AE2c6t1Ydlq25aZfVJoZMDzyoz2Mw1wGQQbi8H5+8rYt/+uFiJC3KMozjU//lLABiwFpttPHk3kX8ZE409Okycf90GggevxUY2gJMn42xSh4LtTbe+KPfQOfBOYRvuVfcU7qlWsVxhNmSjmILlhGdf0POcslS8EBu05BtLQOP3ybPD4ATX6K368g15lCd+xGeCs/Cow3ZFsIusk/cDgyMAFtfCMw/CRx4WLgHeBYjB+4WAHDETAqUxiW3924MzS6jNvIC5JoLGJr7kQAdjS6C8YvB5MoXtx/UzE3HMGOF2gwGF3YBQy8WgxuMW6qU5bh/zzwWxwTaKcx8HznWAMKzEGRlxzi3Gzj4KPKtk9AKBpF76k6EPAfgDJkGhtFKHvsWG5gYLKDR7uKux2fRlX6cwsJjgtXctlNr2lCbQ+WpO1Dim8ELHLsPreoggAMLjwB/9nrJcjJMvOD/xWJhE6o3vxtYfhoAcB2A64oAFsTtWvlhLLeBG+9bwofJ+LGKIqYwi2JdaHMGWzbjOlbgADgeeHoRA8UsLtoxarlFp5yVd+Ucx3175jA5UAPnQHXuAeTDLrD9Auir5EAUQALbJ76JXKML4CwzFB94WACPE1+CgIn2uCZB8b4fmGjohSqw/SX2cR4CX/0DYOEJmfBx4PHbgWxJfF85CIyfJgfTNWhu9v9IpNtnU2cBw9uAp78HtFa8/RD23ifi7ux4WbQfmnkQWHxKfM5XgO0vNRX84I+B+d12HQKiwCwMgd23iz58288Ai08DMz+U52aAHS8Vx6gdfFQAPvfeOtlrYKBaNeCJOwWgBIDpc0WftOc7Yin2jpcbgDP7GDC7CzjhhWIyvPt24TnY+iJzv30PCLnD9pcCuWL0eS5zs3oIePoe8ZkF4l6q/01XS/VvYRji7W9/O17ykpfg7LPPjj1vZmYGU1NT1m9TU1OYmZnxnn/99ddjaGhI/9u6deu6ppuaiqshgI0sWlkZsp0ahg58DyzsYHDhEfPu1QqNTAHdohzIui0x0wQEYh4/HRg6AR2WwyIv45bMz4pDYVu4vAKOXGcZDByrrS4AjvueWUGjHeLJuVU8fmgFnVAIgXMZhlyGYWKwgPMGl8W+ObyNsUoB+WyAIBBi0ipfFrOUtrMiiHNM5urIoINcWJMdtt1Ag7CDbGcFaK+A8Q6qB78vKv6Bh0y5dJoG/Zubi5mFWoEzfCaapSksnvqLACSblB/Q5w4HAvQ1QoYH9grGJBOIXZlVPvOZAAxAlzM8sOeQftJKQyyHn5F7Ak1VGEL53GxnBSzsAnK/r1edswnTA1lsaexCvjknBhOYpeAsP4DOuW8QM5tMDjjvV0lHyTA0uQ1MuhZZ2EE+l8VwpWAPBBLgMgZk28sAD1FbPKR/G853UERHp0nUDw40lxCEbWS6dWTby2Bk5j81WEQ5H6ASror3HHaQbS+BgWO4nEcxyzCSqaOcy2ConLPEvIDZmqPeNkxNtr0kBs7Gou4MD8p+rpoTziDGRB0axAqKaGM43zVaGpnuTcUGBnMhSmhhkK+gXMjowf/lp01gulrEBdtGsNrsaGCTzTCMZWqyvMgkpbEIhhC59iI4OGqtji63bas/tLRpE/Pfx0B3GRkJbJDJocNyaPAcWsijXt6ClZHn4enVDGY7dsydZZQwlW9qoFrqLuOEYhP5DMN4OYtXbgPkdlNYaXSkW9a4pYq5DP7jDiE8zmeAy7eKHe2XGm1wzpFti3ep2T8AwxWxQm+klBOz6HYNA6ijnCdgqb6g6xBjDEFgXH19WX3BfG4uRRnb1rIBNpk8cMarRL6Ui7gxDxSHZYBNj1+113MV48MIg6yO1Rdi+yHUFwSr4QbTBEw7AYDWqh07q7Hg1KEYt1SnIf7RtOjnd4Gm57nkXfhtDW6p1ooBNird6m+nYU96aZ7adVFmNL2AcCmGHVEevdKm2jh1Sao8cd57tdQGADcbhrm55ppr8OCDD+LOO+9c1/tee+21FtOztLR0RAGOtf0CAAyfCCw9g0LjIPJ1AcByrQUjuZAzJlYewdDgAHAAojNWjTlXAvJl4Of/HN94Jou3fK2FiwZqeFPzHwAA522qACdP4MCBNvYuiEsaHa6X5g6VcsjItLzuwq340186F/c+OYeF5TpG69/FTFO4BobKObzsNKUTAfDjQFRWz0xjy1ABWwaGga0TQHkImD1knWFpbjgXrjZANKrTLgd2fV101L5lkSo4FMR+Uj/e+WfInPIKYKEu3BeEUh3MSMogyOKQjFXzB1eeiVecOYnHDqwglw0wXS3iw1+8E197MsRK0zQ+pUk4JNvodNlZYRMwnb53XHY63vHSSeBPZf6W9wGDpyCQ4GbTxBjwyj8ETr9UnHDyJcCCdHEwhq2nngecci7wjQzAu3jeBS/VOio89T2hWeBG18IQgpM0Pm9zFZsKbeBJZjoQ+peUI9U/bRsrY9tIAfiJ2qwzBJPXjVXyGKvkgWwABAwv3B5lS08cK+MnB1ZwSPqd1EoepWpRadgvX+9EiYNxjhNGyjh9elDXoRdsGwKKg1a6Txyt4MTBEWC3EC6/+KQx3SH+0oUn4NIzpzBaMbu0V0s5vGjHKLDncaAOvz6A25qX06YGUdr3iJWngc4CThlUfrRNwH/4S/zbnjx+95YGztpcxe9dehrOXv02ap0OVrgN9lZ5EVNljm67gm6QRyZs4c7fvQAY2S4YiP0/Qlgewa1yDAg5twIagnN8+KXAb5y8jOWhM3AqnsBTtYzQ4sn3o/MhC3ysXMLYpipQyOiyy2UCvHjHKHGLcP13qJTDz51hT/56WoRlcdrlqtpSZBB47SeAsZMFSzB8IvDktwTbc+JOmea1rJaSz9lyIVCRcXPmHhfsB8mT+ONhPJKeEelbwujnyD3dAZnH/PXcM/aaHulKQoHu/V0XnZUnWk5xaSBApad53IHqug4BVb7VUkdjj64+bEOk4m1vextuuukmfOMb38AJJ5yQeO709DT277dXF+3fvx/T09Pe8wuFAqrVqvXvSJneOJMqNuUy7kJ9P/I1ke5saxEMEpGr/aNKo8I3DIg4NwpdZw3tqUSve1ZJheq2AB7qF8k5xwFCiBxYahoB8ZASEAutihYd+iq7+i3sOr+TSh/TSAL5e8g5GA9NsDu95N3WlZCbA23TcEJmB3ALIP3IskFVMmI2ttAADsndlofLOa1RUdeVs+LvSstoTEIpkj1UF8emy6YrYMwBEIDYFFMdXxXvUedLs0kkH64fnzGzeo7O6lwBptTPcEDPoBliQI38awVWjHSI9LvRa8SeT0yv7lkygFODd27upUTZE0UAIKEC9L2dGaE65htwYFiHkAORzS99dY8rVzDX/4m0wrSvCeH2wupBI4odECBAtavZFdGWQs5R7wIrcDQ3KGOqJBLTkiumzBYpUvhLetTQEhcz6JWUAMBEsEMGsnQ80uZcgW7cwOapr2uxxDoDE5W4PAKrbqsVgWSD3zUJiukScn29A47i+iEguR/yAYO464zvMP4eYeh5jgeY9HwXa2BufO/FB2jc58aloVfakgAh/U4Zdwpu1DtKwY0YiN/2trfhi1/8Im699Vbs2LGj5zU7d+7ELbfcYv128803Y+fOnUcqmX2bqBtOgx004KYoV2MEvItAuZ1Ux1AaNSI6l7mRNiU/7m9mwVnGnMtDskoEmCGs48Hlpt4kU7kGmEqsw8Y6GZGffQ261wwgNKeCm3gwq4fEveNmd5xrqpVr1x5tzPKvbFADEtw8JdnhTMAwUMwavYEcHEuyqFaaXcI8d8E5dAC/qTL08q6ML38NA0iyMh6K1tjk5X5XmpIn5UcLV4ObFc9xh4nggKKkAy0YVofpO+Bmxo9o/6zSwiCExYw7S/n7ADcqLhJjMDGNSCe6X1bV8aJIV8BguzasZ1CWJQ7cqDMNOAhcwOTp5Bnn4KG5hjFGwI3Ud9VmzXJ92Tany+KCudWWCO7IxWaYK7CZmxVexFRZvJNmUQ7sy3utc8ANwOHc2fSU1AvOAlIUIs2CtSNAlmpYIkxFzMB2WNZjwFX7SSkxv3qOClRJNvhdk6CY5tO9nocJdUilMY7V8Z3fDxh02qJb3r1AYOK9D8N8YCOmzcT22aHvnLh30wvcyON66X9gi5P1+cfeJQUcY7fUNddcg09/+tP40pe+hMHBQa2bGRoaQqkkRvJf+7Vfw5YtW3D99dcDAH73d38XL3/5y/HhD38Yr3rVq/CZz3wG99xzD/7mb/7mmOVDmaCW5eChGmlV7SK8H4W62WYhK+OdqF2IUR4x4KZTN9QfATfjJY4sAzoc4NkiWHtVghuuBx3OTewWADiw3MTcqqDhVRCxgDEwOUMFDNNiMkIbhG/G5Mx4nEboMjcaBIRtMbjoDszD3Kh8B1nR6XHDMAnWgGnVfiWQ2zTIx4+WcwgY0xt2qplzSTI3qy257xc4wjDEcptBriLHZBkIoZgSTydANB4Zxdy0HeaGKVcWh7cD0eCG6EUcoMfAxCDNEyI8U1eU0+GxmHcpxg8OIOy765l2mBvF+HHnuTM18btaLSTpJ5KGuIHYf05AmBt1DnMZAaeTl1cAnCxFB0z7mjhd/K3PC5ANSEG0mTS0uiFqrTZCBW64LRbt5gZQkXWpIbdg0MwNAamqjlFwI3b7NmXPmXBHQbquuCwP8Zooc0PqR6+B7bCZmx6DmgKDSmOj0jfgsldYm1vKOxhSzQ6tH56+IhFIJOQpwig6szwvO+hhbhLBTQyAeDZuKddVFAfYfC5b+uxY5sb97mHtAaK3KdjAVJ2/AfQ2wDFmbj72sY9hcXERF198MTZt2qT/ffazn9Xn7NmzB/v2mcbz4he/GJ/+9KfxN3/zNzjvvPPwz//8z7jxxhsTRchHy7gc2MSrlS9Yzg6L9RkdRwMAsnJ3aD3zK42apaqEJaBuqQAck5Ip7waE5QHX7oKQm5k0AOxfamjmRs3EA+2WEudE9ouK60RFJj2NxL6epgXgyBCBJJb2JlPXFNxAlKnRLcgP0n1XCewNNkcr4veQ9C+cQzM3y82u6TtDjtmm+DJaDFDIMM+O6CR9HnATaLeUcl/Qhu5BJgoEWQJIu0M1IASa5g0YQ2QwI+/A3lQxofN0ffby+jhTbkxVf5g8n6v7yHspt9R4UTzDzzQ5z0tyS+nLuA1U3PzQayVgp2cwBgNuxk6V4DMUq1kA0zYzRjy9sNpCyDlqXWAVNrjJl6v6s9pfymIt6HOBKPPEJThXyirC3FgZtRgN0lZ6Dmx9sCU+6zVoq8B9aqWMOj4gpQDL+whDsBa3lMpzjFtqzf1QQh5cZpQ+39dWrd9VemLS7/ttPdxSPoDWD3u3XvUkrl4o5oaG9qDHNwi4OabMTT/LFW+77bbIb7/8y7+MX/7lXz4CKXr2pmfODnMzsPhjsRJCWkb5sdWspzxqdDbKZZUp2LEUeIipCsPeVY5OUEAOMG4pwqiqwQYA9i7WsdoUg+Q0CdrH1CAFeAY88j2iuaEzbv/1jHcFdyE7oID6aJf3GTeOT8+jVraomAqc63Rql4hc9lkO2tblIxXxOw1gFnIuNTcMq23TWMMwxGxTvKOpgQyArl4tFVhuNWkt4paqueCmAssoZe51S1HNjcvcyHcD0z4CzQjBnEuBZVyHR+4LJkAncyMjJ7RBl7kRt4kyRgpMjxWFe9Sb3sjzXKAVZW44h5RW04jZvtk6J4CIgKRuw4DSgQmxoqc+D8w9Jn6TejiAY7paxEKtjYV6GzzLUe9k0EYWTZ5DgYl6VhoY1knW4EbrTQxIZWTyYMAN0+nk8nTOpebGzQ9tF5RNiAOMaxKKeqwXm1Bz3FIqfQNyAULYFuxOZZzU5z4GUC+4IR1ZUj9ksaM+kOF+72OQd13EVh122xn85d3rHTwb5ibCZsUBtl7n9Am8vGUOEp3YATep5ub4NU4rn2oocnaYbdvLBjN1SY37BMVNCW7cQRPAdFnctyXjWSi3lBqQObiluVHAJp8JMCoHf8UOaEYkaTbfj+86wtyI7yEXA2pAN5hc2ov42R03q6UCA+p0OtVzZDkVWMeKzzMWA25KGfGclSZxC/Au5iRzMz2gAl8pEOXJKxEUZ2vCvWg0N8QtpfLhmw3KODZezY3jvhC3MIAnliLnoRXsOM4tpY4xbkfsTeqMFbhZqLXl5qSADU5CLLdMnBuhuQEJKuh5Rh8zTC36psxNRHNjX6sAe0jvo4TD+QHh3lWDswpYJ9smeKhZzYVaCyE3gfao7magOqQ/N8qEtXCMRgkOPelUS54VsxnSndetsujXLXWYoAaIDoa++0XcUvJ4Nm8icSuQt6YIxZ4JQL/MDR14+wEZcXXQsoj/17mmRznRa9aDufHloa921cc53uf1yJ/L3GTimJuNASs2RiqOI9ODhwNuXMvWDwkqV4MborlRA6kaDJkRbU1J8WODS3DTUYJiYSECS3OjbLJqdlgWokUToD7ilopF/s73mBkQFTd7mZu42R3nJnaDckvBMDd6FJesDgs71t48oxrcmN9CTldLhWYlThhitiHSocCNKpGMb7UUASTZxpwI9KfSqldLOT57IIa58WhuyOCmlS2KSXLdUnTWykkUYPhcjGTQlNeJAVZFZ40fhKqlLIpy1+r9Sw2pBwrleCjupVibwUJGuP84j0mv8znJLUXJCov5MPlxr1VCXKvo1VYYg5vE+Wpw1hncoq9XQG6+1gaH0NwAsHQ31eqwvr/aPDMyqINbzJNKDg0twFkA/daU5ka5dSiAtCLM9tFGDwfkWAXmRuyVpt1So85xZvq35aj2qPezPYNhLLhJ6od8zI26tydPcW71pDpGGVLdHyc899kATjedtK3GlQnv0a5iWFLngT2e7zI3ef/5G0RQnIKbdTTR39PZGUQFkBFgqWXqsyK+SdgBwIDSsNHcaOZGDppkfakSP9a4HNVdzU2QsTQ3yuiGhEEgGBWtMUmc5biuI9+MyQE38pww5GC8a4Obpb2IFxRDa254QNxS8q8exBUIDDsYIF67MbnFcpegm25ImJsWAYEh18zNlLyJES4TdkIZBSQAyiu7zRcNQtUPntkwIOKEALbmxnVLEdZD7X8lTnFAJWVu6L5Die+SdNBBED3uGN3IcmaxIft+OYOVaVB1bWowDw5RdpZuKJIG0tnGdNRGUEzE5Mw5L8bVFZJ3H6gI0dVN4hylGVGmYg0BmJL7WC3URUA9xdxQ3c3I8LAqGbQ0czPjAfcqWSb9SnNDN+xUaaVAVhTdWgXFz2JApdf46kSnaep+WWluiPtBlaEGeeslKHaYkkg/1Iu5UqjYM5HiTvuO1dzEsKWRbRvoNT2A5prcUk4eXFddHIvum1j0w/RFAKQs88CZCMVqblK31HFr3BrUSEOpGvamWRGfM/VZsgx8RDAVCtwoylW5pYiLZlr+tBoScMND7bLpcgNuxgcMsqYbEipNhIkHkkBH9hosPWaEnRxBp2bf32JuPG6prvRxaK1RqGl7PXtXdGi3DZJFzdy4O2qXM+L7apsyHlG3FFdgjyZJzaidKKiVpcfFhyBHYj14KAfLLeVbCh4tC+ZofqJuKdKBcbfD879LpeXRG7sGbgA4v9FYN0zeX4FNcG52VZfgBiCuNV+arIHY31HT1VKmFF1GIHqtWGVGQIJe8r1ZnFMizE2+YsUnmpbgZr7WRsg5GpK5WZbgps0zGBuq6haudgZHtymZDVdzA0tzE13izXR/IYoyZtDy1in4P/ejc4kYuUbVCfp8JcgOcgacU8bFZW76FRRbjJGPuXHBr9sPJbil6PJnbz2PASDuMnb3nWiw0Q+4WSM74j1VgSnyXuIYUcstFdfeej0zZhxwwU0ndUv91BnniAqKAdG5SquNiD1SMvVZ0yEov7WLhLWWgzA3cmHOctcGNwpALLUDvbx5+5jR7FDmRswdQ1AmPJIRZa6ozOfrdhqLXgoeArnOqnUMS/uIqMIjKI6slhJNzmIkCHND3VLjcqPFCHMj3VKdEGjLdeNhlwqKzcosgGh7xK/ijxNOvbIkRak5stGgtUqAR3/Tmht6L0dzQ1yGXMe58QmKzSBvi4STBjgxQDKwvtxSgNnscf9SQxAJllvJgJupah5qtaAb0yWOZenllgII8xE453k7eS43P5X3UJqb6iZxDnVLlcesdjU9qJibDsIQqMuquSqjFK+iiOmqBLEsEB27YmSdWDfGu2FcqnQFmdqoNgxFeYYUlDFGhJksYbCng2gPtiDJ6DW+QYlOwNx2y4hbKsLc9HpuHLgh4KjffijJZeer55E65GmrkWtI+Se1nV4s2lqYG52uOLeUj6FJqidxaYgx/Z4dN1w7xi1F68UGsBTcrLvJmbEFbkz05JUREUwsaK+IUONAAriRSIbstquiqS51nCB+ssIelDqSoTwwPmgqnwVuFHOjZ5VJ7EzCMZpnYlpzw4GMI6TGctJScApuDGoJZYMNFBBQTEnYwSABNyMVFdEY5FqgFJjnNCTyCzknzE1OplccC+DJv8PclJflu8uVEIWH3N+B+JaCu8yNcumQ2bxXoEvdUhbrE8fCMWv7hcTZJzHjlmrq8zlJg9pVfXpQghsFnnq6UGLKCFSQSwBnrzg3UlBsEWZKK6KZG+KWKo9bnfCUBC7ztQ44B2pKcyOZmxWUMD2Yh4Ta4v6KkaWAnTCMIffHKhIOVqZxCeemDa5ZUBzL+PRpdDLmY1QVaCmP+K+pupqbPt1SFqhins+9mJsEJsJytSWBm5i6z53z1Oc4JsN/sf/eh8XcxLRVL4iJYUR7uaWSdEspc5OaYBjUzJi6pQxzUx/cjm4gB+dnvi/+anDj7NRKhaoOuFnRbqm2HFBExTok2YiRIjBSjnNLiUGQxzXEvjsVfyfByMotvUpMxeupzwsRtPfeMIJi5ZYiIEwPEFnjllLMzVABKGale8lxSwWMa1FxQ24C2W53sNSmS8FNKXi3M5DL9LsZUY6auSFxiGwWxsfcVMVfS1Bsu1tUFOD+BcV2UL6o5oYAJHktA/pmbnSU4mUpKEYoHy3SoN1SVeWW8sS5sTpbyvzE1TMiyOXklwS3jHAFmfAGAZhxS1U9guKK2stKAlyJkpeaXbRCrpmbZiB3kedFjJezIk1MwmzFyC7vA0UvCpxRMTx9h4wFllsq5Fy7RK2yYHDqR49Bqydd4jHauHzAhMbhiqQvMGXgCWaY/NwYxqjvODd9HnPFsF6XjScd1gF1nfwe59JNiqjsuWXMD84zkcDc+PISBwrpc3xAJgncOO5KxdxkXEExAeUbwFJws44mOjI52FjMjdHcNIrjeldhPHOv+Ks2jXPBTY4wN7LClHMMg3mgqVZLOW6p2YY4b7QAjFUMso4yNwkRiq1MJQmK/eBIC4o52XqhMmZAiRp0fFFHVZwbytyEgnHQQm3C3EjSBdNlprUOXdJQu7KxKxDUlODmUF3kORcA1YJ4V2rFSuAbjKUrSUWmrVDmJuKWoqyEzy3lWwpOZu4IZR9FgYmTJtKZWaulEmd3onNka9DcaLeUEhQrsKmYGy0oLkgGwtnewU2DpWfwgxV7KbXMVz+xczjXS8GFW4oyN9weoJVLSaZ1tJxFTm7pPdsA6jI+ZLYkdCZ1VkI2I1PMZF1zWQuZBrroxgSgNOnnRDANPcUg6e5HUJygPVqTWbNt20UKwIAWC9yQ9OkyWKugmDzDqi+eNFjP9HyPnJsA2Kxz3brvADO3vHu6pWLAd5KtRXPjMsJeoMP99+zF3HgBj+OWUqd0nhuC4g2zK/jxYGJCqzo3P3PTKEygXRhGsXEAmN8tfox1S0nNjLUkVLA3jRUxwD8+28SPf7yMbqOBPQey+NGsqIFjRa7dNICzWkpS+NHVQSojoaD02zVgZIf8kYkcxs1Ouh3hZhs7CYyHyDcOIcM4EMp050pio8KFPSL8/cAkMLsbWHpaNN6ps8R5juYGALphCAs00tVSMotTFSM5dTU3QbeJFwb78BWcgnpHgpvVDs5ju7BY3OYMNg5AcJibZmkalZUnTUBGyy0V0zEr8wXx8wgwRRA/AZTFGQmaG5eGTnAxiiB+XDzTt4rEY1pQvFhHbu89GDn4XWRzOWDLmABKqwdxIutiunoewiWRlKgbLYZxiOlwA+d9AJ57egZ1BsKAcAD1BfG5ugk4sCDeVbYklrJqcBPoycH4QAH7FhvYV2Noy3pbrAwBDaAdFAEumCG1wYKlNyHAlpH0a9eiSufqIRRrTSxWzzT1rV3D6DN3oLzwKIJuCcjmxEBRGQfO+A+kvHowN/0OqNQslsjH3JAgo24fQAXF9XkxoyftFmFo7ySqrNMCdt0CPP09UW7dtmj/YyeLPBx8FBg/nfRDdbHzuk5oQj9k5clxtYVd4PHbgKe+CxSrpt+d3QUcfESIp0sjQM63fJyUf9xKw54AAjD1lgE+QOG7X9CDzXJ1V95zeqStsQQ8fY84NrxNSClCz/MBorlR45VbLzYGc5OCm3U0NXO1ZgyAjqfRzRTRzg2hnR+xL1SNLOe6pRS4CawKs6liwM1te1r4o8efkUfKUIPbaIFrgS1jIs6NMgUDLMrfzcitHxA7KF/1ccE4qJlnXON69N+AH/wjcMHVwPDP4rT7PwjGu3j8eb8tzsmWgOKIADe1WeHH/crvm3ucdgXw0t8nbqmclRzGuYgVAmaOddtQGs9NZANnu0/i2Pzkjfho91b8dvA7qLfE7tDl2QfwpcL/D19nLwPHh+R1ksnyUbhSJ9MoO3GLcuWYxqwpB/NTouZGsTTm3SiQ5d3OwJqpUQATkw5yXb9xbgDD3Gxa+RGGPv1eDKkD2SV0R07BJ8L3Ip9vo168FPMWSxEHbnp0woDFfKgrE++JaITifHtZnM8CscEjf0icUB4TgLpiMzfgBtw8vWrabqU6CswC7UyZNBh5PLJSiKQ1Lv1fvw6nN1Zx6Odv1v3Fyff9KbY+9ml47ZnvA+f8kqftcfsv0PNd+o3kybfp5bIjKKbpYEzG5yqK2fzyPmBoW/Tern3no8DX32f/VqgC73wU+OHnxLGzXguccCFw6x+JyVBSPxQnKGYBaRAcuO//Av/6O+a0K/5UDOI3vtXuh17wJnlJTJuLiwfUD9DU92Dx50TyEeOWQkwdiHNXJaXtX38HePhfxOdsEfiFjxuQ5wqKteZGCew99WIDWApu1tks94myyTOx/4z/goXSiQjBcGjzxRhgDeQLJWDkRGDz84GV/UAmwS1F7vdfz2bY26wCK8AJpRZeMFgEDzuo1RsIMwVMFTu4eDPH0EAB//XlJ2GolENRVVSYWbABN06n2KqZDnvpGbHpoJzhxvpz558UHxf2IFeeR7YjBvDysmSnFHMDCHAj3WnalmfEffRScNstFUANyswI2cI2fuFkhscWOf7LmYEmiawIxWEXeblJ6RnBHi0orq6K9J6CJwlOUADDx9yI/CyPPA/7u3UUGgdRYB2UTr3MnEsbtdctlbT9gpnhG2GsAjc+5sbMyIIYkEC/M8akjFXNxvoDN8Ml8R5OCJ3dr+d3ozY/g3Em9EPFzkHMSV2I2BU8roONo8/NZ//2C4ipe+KzC24y7UXxQ3lc6rfk/c95LfD0vcCWC+UVhjmbkCumnloR7ySfCXDyy16Pu576Fla2Xoyw25EpDcSrrlK9iQFJKi1WnJ4Agt2ozSEDoLj6jMg+4xhcfAQA0ChNI1+uivy3lgUjtPCkyW/PGfmzYW7IBIrec0lt7Dsa7QPUNYObBAu9tA8Y3u7cm+warWz/g+LvwKRwd80+JnRoi08DByQIXXgSaNXNUvS++iE3T7CZG7WnmLK5xwVjQ69f2Y940OC4iSLP7QdoEuDlApHIqW5bJdfT50VAmA8E92Bu1DsBBHhpLBo9YS/Nja9ebABLwc26Gum8nRUAT/3MH2Gh1ka+cQi1wR1YPO0PMXHWK8TxfQ+Iv65bSoMbmwl6yWYGZE8GbgEu29LGZT+/BajP4f6fzKE2MI7nFQ7hsQWOJgOuvfLMSCqDgEHJGQFERagrM+az2lfGKxQknYDSN9TnkFXB0wCUV/bIvJXMqjEdvJBYpy7uI91SjIrVFOOghNrELbVjiOEjr2AAA37oMFLqS6YrZhrTmMePpeam1BL5GgvndN4M2PN0Uk0pKM6W8dg570BtcAdOaz+EbcUG/G4pTz1Q4Ka1Yij7mCB+OgUKLEc6J06Om/RGNTfRWR0DSIeVPCCW8xkwBlRYwz5Qm0NjcR9kjpBvHNSC4shqqbXMMGGKLOQcGflF7bQdmy9m/55rSXCjALW6/7ad4p+qQ6T8JyW4ebomBpNSPoPprSfj4M/8BkoAwm7HaG7ACHNjAz+LuaHsKGlXhcYB8EwBAEehLrbz2HPqf8H2089HPhsAe+8Hbv+g2W/OdT/6wM2zFhQ74IZze3sYV5Oizq9uFuBmeR/8AN8xpeM551eAk18B/Pu1wKFHRTmqMqrP2YyY6l98/VCSW4q2yY5Th1cP2juaA2bg9j5DUZMxEYrX8i76EV77wJQXzMakk94jEQxyAyKVtRuI5Fdd566WcvOyQcDNxkjFcWJiTFPaEJuai4osPZU6bik4pDuGWk6iasWAcLMKpisRfuA+k9zNdmU4aaHgRsUK8SngaSNRnU9tHtmmATclBW5yJTMYrBwyy3TLY+Jvuw6AezU3oIwDC4hbigAkBQI8aQwUuGFzqEtwU26L5w/yZYQy4mboFRSHwlcvoyx3M0W78wfMu/Z2WB5wAxjXVBJoBIhAl6bJEVNy+3zLFGhS94IEAn26pRhjqOSzGITIf6sgXar1WbQXST1ZngHnXKwWDJz8xLEMMayDds0BdoTiWOYm2pZyzQXxYXAq5hz1zowrRoMb6ZYq5TJWu+VhB+ASvlHmRjGR8j62oJiwb8v79b0UoEEYolAXv7fzw6Y6qPatXZhxTFc/bEGCWa42Zv9Wnzdu4tKopwuQP0S0Rx4GiJoCg+VRcT5dUq8G2docsEKAh+ovvP1QHKAnk0IeGuCi3MO1Q0RTRPqhOLZDg6Z+BMUxefcxunGmTyVgqpfuynFT+8GT81tjUegrAVIOJMy9m99InBs3LxvDLZWCm3U0wTJzmw6VZpaHqpmop6PKFmBVjBi3lDhXurA0uBGDO2cZue0Bj61igXRRRJ6vjKJ41an40DjtBNQ+PvU5ZNWsGRDCaUDoiVQnWDtIlunK/X1USG81SGRt5sZeLWXcUt70EGMwzM0Um9dLwQc7BoDx1Vl5uQQCrn+auJHCTFEfN2XoYW58fUq2aDoKDW4c5gbMen7g2+fKDaRogZuYWax7Lg3p3sMGCllUmOjQGiX1DufQWTpgTlrZb7MUPV0oMTNM+FdL0b2ZfPdy63qutSA+VCbVrMOfOYJEJqQuTcWKKuUzCDLGrRKGXcLcQOhNVF1cORC5ZWTjT9KuCtJVmu2saHF6Jz9EMqDADWFu+irTNZoesFmkLuqBPz8oJxROKavz9YqpGXOvuPRwTlZgjcBaTr68zzyzsSjcVMrqSf1QAnND3b6KcVCAt0aixKt+iG4VE1e2cWL8vlyEDrvRl1uql6A4po0nnUNNv+cKUJR1kLJcbn4jmhvnnaTMzfFnVCfhdgRmBijBjQ95MGYvB1cdnOOWAmCDG4nWFbhRK22CwA9v3AiyUeaGDFqKuUnqVBqLBmi0VpCrHYiemyubTnDlIIkeKzs2NWOS4IYRzY18mFmFpoBP13ZtRQZ2AODcy9wMdefMOasH5BMUS+CAGwlEeJAFD4x+Q5dbhLkB4B5TnyO6G3u27C77tiIC61snMDeRztIFsWuLcwMAlUIGA5K5acql8GjXkFl80py0vA8qbku8+NfpdGM6XCp4j6w28uWLuqWkafZwcMo/gOh3ZgaOqUFb81aSOjXddjWoDMw9dJ3er/Oq3VIwdSpgTNczACg0BbhRDFMrPwIeZKPMjQobwOEMWr560RuoRo0Mti64USCkPAJ3xaa+BiDgxFkO7gOUjQUDIEpSx6OZm2cIu8WN/gborx/S32meCDOqGAflqlwlzA3th7xuVNLm4ly6vYAmPT+pjMwF8lyiW7KWxPvSGQeAeOQybToK9agZV6h7LlZz47h2lW0QxhBJAwAAct9JREFUQXEKbtbZvNsvwMxGNRtujTkEEOV84CaIVhjXLSW1Dpxl0JXMTQy2EWwtAQKB20hXDH0e9XV70r160Pq5sPRE9Nxs0XQgqweNlkf91pGdCo1z4/jvmaKZNXPjghtfRxFq5maI1RA2VwHOMRQumOtWD8lHyIHIBQQSiISq4Uc6LuflWvSxU27u/lK+vaUoi6GTEcPcUJedejY1B/gwxXLEiSI9NlDMYUBqbtqFYXQDUf7luYfNScszGtxHwU0/bqkoc8MpcxN3T/EFzClnDW4Gpnrk0YDLqaoDbvJqtYiMg9SVbim6CkcN7KTNUObGWh27EnVL5Voina3iGE2NEXN2mwLEx+kt+hKxJpjFcjh11Qrg53GNa80NcSvR333pUecUh+UkhRlGd98D9uA9Q0SuihlOWpnofnfZKMU46IUNcwJQAQTcEMYirs3FTQzWBG5Y9LfI+Yq5ocvrfdvfxLjPks6hRnVVyltAwU3caqlszs6LPn9jwIqNkYrjxNTMVcyM7Rdu9C8+jQUxytxkKbhxXpUCN522HigEcxPI9hIiovOhabEquFPZveDGV1UUuDlk/VpYfjJ6aq4EDEhBcdgGFlWnIungsCPiXyhwQ5gbBjEoB9otlTf3sZITLdOg2zIxaSDcZLnWPPIwvzEJzszGmc6AIYEIz5Tkcc9sKJIOD3MDEHCzJI97BMUUePpmZ04HZwXxi3FLaeZDd5j9bb8AAAOEuelmSugUhgEA1aUfm5OWZ0QqONfB/tw0RLUB/mfbG08q5kNeoy+37+8Wsxa1VyZjBn0Pc0PCJQBAKRfI9Ii/YegIioEoc0O0bnSHcgZmMaIG3CwAAFrFcTt5dJLTqesJDM2z+Osyc2s0rwvHZW5G/aAijrlxtTvU1EA6MGnuocHND+xzDz5iPie6pWIYFDdPLnMTtoGDsg7rfqgtwaTjyqRtLlZQvIZ30Q9z47ZVNx1xkwZfO+kH3JRHzLhiMTcxmpsgdUv91JgtKPYXLfeCGzIQqsoFOEGS3N7b1dwo5iYr92KK19wY0px+J0bdUrV5mTEfcyMru8PcMHclFCADqBVNTB8FOEiAQ7RXiaA4TxhlCRoVNa7cUs5zAo9bKuNs3DnQPKAFnDq9CtxEtDQyjxKIcDXgWC4k8oFS4HHMjRvrxhEUuwH7NPuW4JZikc4Nke+MSZCov/TvlhooZFGR4CbMFHSE7Qwn4FIyN0xlyedC6oc+B8ik1qzoQxxgIrenlm3KwXBg0n+CfndmkCnlshjImfdVzmftBIUiuKIWFANkxdSMzqN6Z133PVK3lKyDeemWahbG7IQFWQPilavE65Z7tswNqaeuDoTGuKGrqbQ5AG95RlybFKVYgxsJMKhbSomXlWmRNgS4ie2HYkBG3GqpXNlshaKeSfsh5TbztjkWn7+eLBpNZz/MTQ+3lNfdG8eIJgAvqoFSzE0nwS2lmZtUUPxTY6Jz5zYdKs1dueR//cyOLaDu4RUUy/PCFpTuQjE3XS5C8setlgqYLVqNLAUnnTDCthiIk3zdDnPjtazcPZtsRYEgIwRsCsS1aybOTTYHUz25EdZSt1TXZm4srYy0XMvezXugdcgDbqTmRrulHLCggEhWMTcuCHJYuaQOy90Z3KHwFQhRZtISM4sEj4IxahF3l1oK3j9zUylkMciizI31mNUDsuP11Lu+3FIUCBjmRrEfiW4pJ89Bt4FMh8zSkwZ9Uv4sAEZKpp4rtxQLDHMjfzDttxp1S6l6QCNlB4wJrZm0XHsJrNvSzE1bMjdWyakgnmqm3I9LYq1mudEdd1Jk64UY94NiZLst4W5OAjdLLnPDDPOTZN22EFevRVAct1oqk7O3kwhy0k1G9CZu/fTu1O7mrwe48WpuEsz3bnrVgQgI9qQn0S3lYW50fuV35bpLNTc/PaZX25D/K4vM8uModsUO5Eqw9uqIaG7keZ02VIVWmhvdJnwCW6jBI8aVwTnphOUza3P+CqvSXTtkn69zSL7nynKWRjoytVoiJzvxVi1Gc8NJRY1nbjzYJsLcDHUOolATA1HI5ZuqucwNzURINDclK9/6PO9S8F5uqRjNjQM2jKCY1hd3n50wer45GDmPMcRT6x4bLGRRgVwunymg5YAbDrHjeK61JNMApzP1pMXthGM0NxZ8jKP9Zd1XppeBZ4sCICSCG1P+DMBo0dxHgxutuenKJJB3qsMbmJVQerUXeSwLW9q1otpFrrWgwY1ibqzqotqFminzflwSazVVTxGti9aSbTdx5Pxs3jCy1lYUHlP3rBC31MCkzU7EMQH1uH4oBty4gmK6yofucq7cbopVVQO7r825K7Di0uF9FxTc+Bh893Qi2NLP7EdQ7LlHEqu0RN6zljvQ1VJunBsCEq28SEvdUsefcas3i2NufNCHDIRqAM2WnNmCC24kfUgExaqD6moGIsaYzdZYd67NRl1G9bn+mJvhE/WhTraMTo7EdckVYfnXATN70rOFmrX9Ah2wzMqkeM2Nj7nJtm3mZrhzCEXJ3PyECz97IN1SatNFm7kxmhs1s2N6zyf3eaQkY91SjubGYXtcFs24peKYGzhuwPgOV21oKoTZa1ktlcWAYm6yRbPxK4AlXsJKTgzMaqAO3PR6Z5judwq2jePUihMTO3jYLli9DLw0Ku7iHWgcQCpXOY0WTT0v6/DzCq10hFuKmU1adRshq3zUsU5I2DjF7ARZtCqbdDoVEGsXR+W5JCeauZExR0KPS+KICIrlPS3mhiHK3HhA3vK+tTE3YGLwVG4qABg6gT7EuK1qMf1QoqCYsFFtAm6sTVSlS1CVt1rc4G1ztI0nuaU8dc7H3CQCUk8+vMxNkluK2+f6nullbjxxblR6aDnSvOjzU+bmODSjb1hbnBtilLkJPbMF9zwS5yZgEMuVtc4ijrmBM9sn5ykUXxgys7H6fHKnopibyTP0kXZ+GG06w8/K3bMt5kZ2MHnC3HSUoNjEuWGcG2EtY8Qt5TI3vTU3Y+Es8hLc/CA8GQAQ1A7KTsE8z8qjZG54Loa5ca0fQXEkzo3r6nLy5KPI9Tnme1wQPwFoPaLIfgTFRaO56WaK1nvdz0dRzwuXihqoGYthZdxn+TpqmCKhcWJctlGfH5r8KdPgpjwS7ez1Q1xXYoiAMYwQyZvS3DDZuXOZXr39AkCYmwNQ7mEap0c/iugalAsq1zTMTatABltlKoinmkX3JSZdo8WJbztN0657LQUH7EB+rnuLmmZuJux7VMmkZ/w085lucNlrkhXJk+NC0oxDXm4EKk2DG5e5WaNbKgase20tgmIKPL0AN8Et1ct92W0bjSXV3NBVYxHNjWf7BWopc3P8mRqI9DYB9JjXdeF+ZMbvmyvaFGQE3MhKyLtae6I0N6EepP3pFEH8yK3pQaqcVx1ArFtKVna1rHvCATdkhq8BDGVuFDWsG9Sq0dEEeausNCtjCYod5sbTmWbbK9b3cT6LvHRLPcBPEteFbaC5DOMEcQZRpdvRe385561FUBynuYnoeOQjmacD4y64cXU1xCxtlWc5a8KqJWUD+QwGtFuqiHZuWB+b4SNoFsXgk2styPk983f0ERo/BtyQpFvF6B3Io2nXbinF3CQNINQtxYDRgnlf5bzN3PCwK25F24+qz92mrieKpe3qMZZZy6rbJVFehcYhZCX4bhXGomBZMzd9uqUOa7UUKWDKciiBdKYg2UZP+6d9QtXH3HjSo0CeBjfyHoMx4KY0aiZB9fnkfsj97gqK20QIW6JuKYe50VGKe7ilEljSdRUUW9qhHoLiyDmh5xzyWe2lFeQEkPQKionLsNMycoA4t1QqKD7+jNOgFhFwY58bDbYmTbEDubKpRLSRKqNLxtuig1ScUFfeOhPD3ERWs9DPNKCT6gDqc9Hnq+s6TRHEDwAmzT5W7YIBN5yKgKset5Saobbr1lJwStFnvG6p3kH81OARSnfQFJtHviY67qf5BFp51XHOkWXHDs3rMDeGTTFPtv72w9zEam7sPHiD+Lmr0Xhvt5SIfBzDBPYAN9VMS5dJN1OymRuMol024EaKY3rPHt18WJobUWZ048nIxpkKlFk6N5h0AKJ+xTE3rlsKQpA/SpgbV1DM1d5SlLnJ5sXmnICMxWLKUrulACsgXrskzi+vPAEA6AYFdLOVaBNzNTde9+OzdUuRdkXrL12yHQljAUQmW0oUvLQ3ntnots3KShfcUEZ3goCb8qg9yVrLail3BRhlHHxuKTXx0BonT5tzXV3Wc3uAGytd0cOx51uCYk+b6addxbkvqZuQBR5BseOOpKBHh+tIYPSOoW2MVBwn5sgfLYuslrK+U1ZCgpZsMcEtxWxw06rrewrmRtw77uUK5ibGLaWZG3fG5KODSScY5IDRk/Qhyy2VLRr0b2luFHNDtAU0zg0pIys4YoxbymcZCfxC+dxJLKBYF+Bmjo2gWZa+/9pc/N5SCojkbObGYpOA/jqsvMvc2ANBxC3lG8Qimpsk5sajuXHBd49BcSgjdFBdBOBBDu1cVV8/w0fApTg011wgMW48nWmkE/bNQp1dwS3NjWcQI243ZZZbyrl3xMjgFzCGMQ9zEyhBsdpbijkdvgLsUjCsIoOr1xJEmBtRXuXlJwAAzdKkf7zLO4Pt0XRLqUmO2uzWrTNuf2AxNx52GpBskGQJSkP2fWi/UD3B9AmlEXuStSa3FMlTt00YB9ctpSZZ1C3lMJq+vjhS3HEgyznu6/t95suHs1LSOs9Na9w59LOql0rz5Lql3LGnRbQ4G9wtle4Kvp6mZmqe0MAs8qkXc0NXS3n83YFkMLotgab1wMvQ7aXrAayGxziAxhJw798BP/538WOJuKXmnwC+9wlrjyWRhowRQJdGxJLuwhDQXEQ7Pyy3KpB58dHPulMhdHCXam7MwGOyn+CW8uRXMTcY3ITw0E+QY13kOkLMu5QZRqM4hUE8IjrOQQlaXIGeYm6yLnPDYc9s+nFLVcXf/T8E7vhz4Lz/ZD3LzUNAO6cnvy3KbPocO99xmpuDjwL3/B+guYxSYSsw+Hx5UxcsJw+KQzI6cQ3iPXJkxNLZ+jxm+KjuGHOtBYhF0i5zsxb6nEyMocrXwzYeeBjYc7f4beFJ5LshpldF3SmvPCnOSRIUa0BK6hiAUTJnqLhxbvTzmd0cBzcDMz8UkwClueEhJn/8GeRW9iIbMODQN3WaOsqN1xb1sFmaFHXK7TYooxkpL/XXcTdwHu0rEo0MuI/fLsDJqZdG49FEBMXOMzRzkyAoVvcc3GSu15obeX1+QPQH5RFgcdV2S80/Adx7A7DlAsP80DxQW3gKeOZe4MJfF9/p6h+XuSl5NDd7vy/6w05TtLfNzyfp7YO5AaLvwuoTerilfvxV4Af/KD4PTJE62ENQ3M859HTF3CgQ69Y5xoDFp0R6Tn6FvfVCxB0P//djZCm4WVejNKJtejbKPMCDVnrV6IpDRCzpDEaq8uTKAgy06kBpRCxZZQyce54RSQs9FgL3fwq4+TrzU2XSdGz1eeC+f0jKODAwAb2ss7mIVnEcYSBoS14YMkxVaUQM8M0lsxxUNahWzRMgSuQjoGWrQFNkKXg0v0pQzHMV7Gdj2AQhklziJbQyFTFrBoD6AlkK7rg/lPjXFRQzM/haluSWGpCd8sIe4NYPCFB54k55XQjwEPTt6KuX9wPf/mtRL37xE3a+3aX8yr78+8DuOwAA4yzAvos+LJezr425UVsvrIL4bCqTQH0eT/MJZKoK3CyaNPSzWip0ylnlh5nDQUCZG9JRf/MvjBYKQA7AdCThkza74zUzUAWMYSAXopThqHcZhkqSdlduKVnfeMQlQ9oJAAaG4UP34rTvXYeIDUyiVdxi/dQob/GnMcLc9OHqWyu4Udc3V4Cb3i7a1kkvN8yNDrbnMjcuuJGlvzLjAYPS9CaVm6Lgf2S7+Dt8ouxHpsTGmQOTdvne+3fA7C5g5zXRPNDv3/sEcOhRYOoswRxb4CYnAE6uLNjiQdUPEXDzxbcCc4+L7z/5GvBLN5j09hPETx+PmUQkLQVvLgOfeYOZvC0+DVz6fvG5nzoQevqDtTI3HQJuvv5+4EdfEP3f8HZ5XsncO2Vujn9TcW58L9diHsTJ0RswBrzwTaKD2Poz8IvYiFXGxUZ09VlgaLMRMnKGAMRt4ljAEA3ipwSEm84DtrwA2HqRABgvfItoXIXBKHPDAmB4m0jvtp3i+wt+A4tP/gDLw2cAYHj6pNdhasfZmtoHY8B//J/AnrtE+gHC3KwacXJpDGxFRSgl+2QxZny9fa2WEjQqz5XwV8Xfwqkr9+CE4QI+PXc6ShVmdmJu10U3w7mNV3iol20zHcTP6Fh0mujfJJHu9pcCr/wAsOtmATwWniTghpvny8u1bkoNDI1FUU7ULUloaKsM5nZbvxcaB1Ef2Aam30WgAVWSVSDKcAXmmfzCq/GhL/8Id4TnolCR7ptuwwDnNQuKo24pwME/eilqzQCbF7wJWNqLTsgxX2vJsxjy02diePhET1qUucyNEBRnwPHuc2uYyWzBSEUA7CBQq6UIc0NvpUGI2MQ2YGZ7hUZpGnMnXoHNQyUxWG2+APVwBx45/zqM7r8TnGWx+8y3IhO2PG6pJOYmbtbuDqg9TF2/PCPu3+3aG0pazA0xF9yo3aSby4jt4yhz4/aVWy8CrvhT4IQXiPp83n8SCxS2vkgAkRe+GXj6e2KLhvqCPw/6e2jiDi08BYyfase4Uc98ye+KtFQmRIDAAnGPzz9p7teuAc0FMSnrV1Ds+66MujV9/cTiMzYrPf8kqafrLChect6zqnNhR7jysgUD8lb2m3FiYMrcJwU3PwVG/bKOueDG7hpIZRuYBM79FSPSVWe7mhtANMzZXVJoB7M1vTyciWFuBItC3QCEnTjtCuC0y83ywFMuEX+HTxQDsXWjQJz7xJ2mUxvdgdXMNLAkdBqHNv8cpsaqdo5PuphsLQEgJweH5f2iUTEmA2uZnZY1O8ECc21fbinDuhwaPBOfWTgTpwcVPBqu4pxsB1317E5dDF5yBq+NaG54riSKzepUPG6pJO1DkAFe8jsCFO6+w3T46llOh6gZKx0oEeJ9UwEmNfXsMDT3lkxZrrWAOraRetIvuBGD61JYBJPEQKe6HR9rbwcAFCvC1ZbpNgi+64O5sdJNNWBRszQ3ap+h4jDwyj8EnrgTnXYXz8xI9yHLYGrLiRhmczaLRs11S0HEp2HgOH+si+XhgUib5dxsAWJp5uhWKPJ0xRgujzwPe150HTafNAY89T2gdgiMZfD0qf8Z9YETwHiIRmULKkuPuZApujTZLrBIuXm/9zK94pHUr9WDxF1BmJskQbESynfJappY5mYzATdkYvAzbxWfn/ouMLRF/FN2yqXife/7gS1q9T2n0xKMKCD6sfFTyUop0u9sOg846RXAU3eL7yoG1YoEeiwQTEZrRYjFC9UogyXoRZmOXmCHsFVJ7JpiU6SLH6sH/e+1r3bVi7lxwE22bI516uK9qnNqc8CK/Oxj37RtDLfUxoBYx4npV+2puJGQ9Envv18krKhgZ1M5Fc/Xt9eSSAuc5cNGV4L8QAyrFCMopn9j0in6RepWc85TzI3aobc4LEAAceHZQfxkB8VDa2rvAzcZGYyKZUuYlo/ZJ4FXMQt0skbvwz2aF3AD/FjOCeKn8+1hbuLcUsqqRKNAffjSLWU9HzCMFqDdHz7TbF3tkBxkBOAESByatYAxAMVQMje8hJYs7lVCmpUHxaw96DYN+9SPoJhaDHNjfiPnKDA/OB3LylhAIem5jgvFx3bq1VJcABzOAvsdKXdltwVwkX4VgqCTrZhz3QGdaLS80cTd7ReoeWfkvu89TN2H7g+3eoi4K4izL0lQrIAY4I8TAziam4Q+I66/820NAETr7+pBc3+1lYxmbgr2uTSNuh+SeS8Om5VwtI+N1av1ehcqz0nnwADLkW1yIQY3u6L70p4IaGNAsOo3tXBcgpsg42xDEZqJbn2OgN7NiH2HG0Rzk4KbdTSuI5LGa27ogG0udBGwhwL2aW6UOFf5+p3ZaFycGxd8McCsCCoM9g9u4AxkceDGZZ7ilkc3FsRfuVEfs/aWImVE9DhUd+MbIJRbCrkSpsviuUsNcU05C3RyRtfApQsjcAdGBfy05kZlI+a9RQK0eIxGdHVXRJFLDHMzZ36kn+EUJ3c6rdKwFl/qVUSauYnRRjiW7yq3VAn1jrhmRZJmuQAoVIZlsjmCULhm7Jli5EPUPIJiaoxqbhS4G5jW5WyRbS6z0tdqKXFvVd4CwDDzbOtWTgId5iZgTDM33dyAXj2l8m/6B3l/WV8i+dZLwRPAzbNlbjQIoOCGMDdKF9dLUJzJEr1GA15T97SYGx+4iWkzemsAtzwcNzDd+FdFhlaRz7MOuKETEd0PSda8PGpW3NUIuIkDzv0IjMVNYPUVrumVdWNmpZjT5k3aY+7hpsG3csta8k8YOrpiqrFgnlObN+fTkB4puInaHXfcgVe/+tXYvHkzGGO48cYbE8+/7bbbBHXs/JuZmUm87mgZg4xgmuCW4t5K7TIAHuaGeToWNUDKiq9nmNr1Fd/RBe5ScLUdQGHQ30HGVVg6kGvg5jyLOdfHMTfKSqOy/Ztr7AjFFNwY15QvhVRzM1W2jxUzEPFFAOFXl8yNldWwY0KRq0avmRv1YJe5AXoyN4PTIsWh3BAQ8DI3homhzI0LbswVmk3SS/pNB6nATUQr1GO2H0h9ywovoS49rwrcDOQAZEu6zme6DUREvGt1SzEWKTYrzo1mbuimmHb7YNRVkKS50c+XwINIuc1rFfdSy9I5C+z0UeZGtr4k5ka9L26Vv+cdqLgrNBS+k96erpBe5mNu5p8wYEAJ4COCYs/QkRThF/BrbrytNqbNUEbBNVoOdONfpRHpeNxSbhp9/ZAOh6HaHDOTA/f6XgJjZb7Vr9RITCTzfM/mxLHAxXeOB3g1Fk3dqhBtlQY3NZsxqs+Z8hwkbqmIV2JjcCbHNBWrq6s477zz8JGPfGRN1z366KPYt2+f/jc5Odn7oqNhehYZrbjeuhxb+X3gxvOq6N5PAFSYePUwz4p0c0u6OoWHRnMTC25iqgoP4TI3EQ9shHly/fUD9vfyqH0XTsAYDeIH2DuDe8ozq5ibbAnTDrixmJt2Q8S5cWfQqlwABMot1c8A0ou5yeTMclY1WLurjEBAHQU0CW6pCHNTHtMdpI7cSwXF9Jo4k2WwiiJqDnNTyQEIAnCpV8iEDURm0v3MMJ3BPbq6lJlzVFlQ5ga+8+V9k8B6EnOjT5GCYvJOLbcXZW5kvBzK3Oi0yGdwT7fLOPdobvpwS/U7oMaZup6yHYceFX9Lo6St9TGAKeZDMStuSAUNbsx789N0cW4pwgwlgbpVD3OT5JZS91LpV0YDCKo2F6k3PgbekybxA/mcxNyQvZ50AMPZ6Hma8F2j5kb9roBKcRjIqR2+mb3tB+13WivAwhPiczXJLbUxwM0xFRRfeeWVuPLKK9d83eTkJIaHh9c/Qc/SeOjSzsbc2TJTAkkfI+OdzHgqjIotod1SMh0aZMR3dBa4QWjcUvmBtc3+aOegb8iiH32CaGU5d8Y0Alu0Se6vZj1BTrAevdxS0qXCciVMF+1jpSxlblTIdeceilUJsrKjb5j0JLmlejE3gKB2Vw+I9ze8lTA3ZiAPFFBIcEvZJtPv6SCjbqkYIaRr0i23jBJyXZGfZamdHciJPPL8ANBcRLbrmbWvZYYpjYIZPVF23VKDk4C3jjPjBu61FNxZ+aKfygyAMayr/OsySxZzI26ZlcEjO9kK2fxUMjc6QxZFGG33arD1Mjfr5JZSmaKAYGGP+GsNYI5bylev1SSlVRMDJk0LZQmqm0UMJsDfr8W6pWQD5lwwS3TFIK0HK4SFqs/LWGCywlKXNuAwN84kqzRi3oHllgJMWz9Mt1QSa0p36VbRk1d94CZOd9XHOTw07q/qZjttmrkhcceUHfqJ+Du4KaEfSt1Sh23Pf/7zsWnTJrzyla/Et771rcRzm80mlpaWrH9HzuIHNJdFsb5GwIEPCdOORf5VzE1jQazU0vsFSeYmodLbUXhhdCWFQXgbSywapwO5D9RFP8WutFCmdiEm+qTAfYZvCwZvnBvplsoWI26pUpYRzU0dIbjYpJO+Px2duGwgjGILEgXFfZgDTn0rlxi4WPKu9EhAxC1lm3y2prYNta7BTaSD7gVuJHPDS5q5WaVuKRYglANDRomK3TIIo3mzk+0wVhZAdgYS1alWpvz3ZC576gdA8ubWvY27lrilFHMDCF2W221amhvplpKr9DoWc6MAVLT8mSskB8xg27VBvJ0nj5ZiLeZjbtRvNOAmSa747GNuquKvzy2lwHZxWILBw2BuMgVzLCIqpszNQftYfV4E41P3sK4jdTXSD41E3VKeVXbkZk6CY767QNE1a2IiwU0tyS3Vj6DYA27cAH4qbTQEgQtg1LPoas0NytxsjFT0aZs2bcLHP/5xfP7zn8fnP/95bN26FRdffDG+//3vx15z/fXXY2hoSP/bunXrEUsfp0H3HDOdNZ0NOh1UZBWF+uq6peTxgSnxO+dAY1ELF/tibojamIG6pWKYm0S3lH2O1Qf6mJuIoNjnloI1KFAtBAAhYAQszY27Oox1WwjkcZYvYTAHFLPm2cUss1ZLiUc4bqm2ESSb3yWbor97mBvuHvOYDtuvZmU88nwGLpemkry5mhv6WWtu6OxvBIBw0bFuKyI87znbl3qsFcRoblgALkEi6yi3lI+SXwNz4/vsLgUfmDKAwfJiMnpRMnhz2CvF/lHdnGJitdfQrb+KUeiIQgkY09t+dD3Mjf5B/4lJX46g8bYj0l1PQXG35YSekBZZ7ut9K8byrkaI5IsuA6fpXMtqKcbIVi0JK6ZWHSBQmyOCYpe5Ide5/RCN0q7dUor1VNevQXPjY27cc9xdulX0ZDdP4mL/PaxTEgTFqo+gK58A2/3nc4exjHSpb2y31MZIRZ92+umn47/+1/+KCy+8EC9+8Yvxf/7P/8GLX/xi/OVf/mXsNddeey0WFxf1v6eeeurIJVDt3RNEizUiKAaLr5Q+9bmvwmSyYjUM4Oy7ohiPJEExATe8S8BN1Z+uWEExcUtplxu5zOdqS1pGCkhBsa1rYG5DUsxNtxM9R5reegEAsiUwxjBeNp7YUhboqs4y7ADdppxB+5ibkl0E9LzDERQDhrlRoj3pQqHPD2gnpCIz1xfc6HbadBmoWVlpBMhVEAaivHKtRVhB/GReEk3WjRVejKyWquTEU0OpD8n6BMXqGX0KigGbuTEuplC8JxXDpDIZc09mgkZ6dEziFBfgETcgAE7XzFFwo47R15qlS8EFODXMTYXkxa7Dpi/gfh1XNk9EtI5rSs+L1kFzowbujDPwDzpuqV6CYu1GS2BuFBuUqElLaDOFOHBDnqVYDhXs02JunDxS8Ov2Q3R/veay1PclTAwOC2g670vv0p0Vu3SrQKdecIM+GNEEEKxXrzkgNk8WWaiyDHLm2sFpsWQ8VlCcuqXWxV70ohdh165dsccLhQKq1ar170gZT2iwzBkAJceiLrSv86nPrY6FnKcaX20OgbPEN8ktZW2cqRo+EK+5iWVuom4pC5R4mRvnXpmcTReXR2CXYZJbqm2dZ91W7Qge5MAywrUwXiHgJseM5gYAkxvmeZmbbMnOF+8mtGHeo/OWppgbNTtSQNFlbtSsd3ibKFAeiuBevie4zI3UL4XFYQDCNcUj9aw/t5Rgbmy31GAeAAsQ5sTAxro+QTH8gMc+wfoWeKo7wGV0Wi461/KwvqdfgCyvSXyu7ZYygMa4pTQjSjpzCwDnqFvKZW7IgBlZIUSZPgdUq+NapBvH3DiXHA64Ua6H6hZ7xVASc5OouSGr/5TRgZSmcy3MDRDdKZ3mQ91XAYGJM8Xf2lyCWyqELkS1LYOy0ogoj4CApMjEgJR3LFPjGHVLuefQJfgsIG6pgzH361G/EwXFvrhDzF4KrrQ+Yyeba7UbK2Vujqjdf//92LRpU+8Tj4JF2AViprPuA9VGro9hbgBCm85BvU61GiPRLUUOMbW6IcjKpZK+mW6CW4rHnxNxgYgfo/fWG4aWxT9rpkiD+KkRR3Y4VFDsNGC1HLebMcLD8UpGfy7lGHiQRSiPZzqN6Axa7ytVdEh5bn2z/vYrKB50wY0a5IwF4EQ/MyY0C0CsmE+sfKsZN0NRuKS68m+utaA1JP27pYQea9UT56YS0dw0/Pf0Cc+t484xUggWc6NcUir+BxECm2uZYad8+h96RURQ7BnMNdMi7sfhCIopc4ME5kbl0cPsAhxRbMMSohTHDVprFRRzItCetjeUdJkbN22uuQJo+k4tFwhJ51rBTewKMvmsxoJxQU2fK/7W54wwNsktBZiBPVcx/ZCKdeNhx23mxgU3hyEo1uUkl2Yr5qbTFNuuuEbBmc+SBMVLMYJiVcadumFuJk4317rsm2+82gB2TFdLraysWKzL7t27cf/992N0dBTbtm3Dtddei2eeeQZ///d/DwD4H//jf2DHjh0466yz0Gg08IlPfAK33norvva1rx2rLFjGQzEw+d1SnheuK5TTgfQSFNPPGtnPm+f2wdzQY4GaBRUGDTMQzUHMnXyDvO8XD6ChM9lcUSxEorv9KpaLc3spOED2l6JxbmKYm0xRV/QJ4pYqZsT9u7kKgm4Dma5YMWWJvwlzE9ADdP+WREFxEnOj3FKUufEIiikLUxoRgxFdDm5TN2ZGlqtot0aowE1znoxLMbNH1yTAWyZxblbbHADTq6VCqbkJ1DJdX0d/mG4pQ9xwA+pKown3ZLYrKHG1lMvcSLcUdYvpCMVc6nncODc2c8NgmJtOlmzjoPVBdjtlUsjubT2uq0dZ0qC1FqPMzeC0AMaL0nVvMTeAlWlvnBuZ1n6Ym0RBcZJbKgbsqWep5+QHBNMJCFCiIg27bik6OaP9kAIXgKhrKwdEOcW4M600mB/835MExe5eT7mSmNA0FoT72nWd9WxXCSDYx9wAhh1bnTUM2cQZAL4kPmsxcQw7vUGYm2MKbu655x684hWv0N/f8Y53AACuvvpq3HDDDdi3bx/27Nmjj7daLbzzne/EM888g3K5jHPPPRdf//rXrXscS+PuhorErI0f9Z842tIDbuIavBKc1ecEuAmBnkH8OLceEajlu6pz8moUkgTF8YyV0aUkoHsWmNmvBjfMynOs5iZM0NwQ5iYrnzdeMeko5sTnMFcBGrNy2bgTb0R11CrGDRPFY2tz3L/ozz2gZkCtFb3polsnGIhvXAcVezx2xRQDzDYW1U06SRZzs1bNjWZuopqbgRyzmJtAuaV8HfsaVktZUJ4yH3UKbug9zRW2oBj+58aIqk0dInFumIpzI3PGAruOWMyN2IYiE4rPXYu5US40BnEnCoY9EYoZi8aOoebVWxyGW0qV6eBmGzQPbiZaH9ctlaS58QiK1425MasbI/mgzymNGveJ2hcK8IMbaupdDjjgBnDcUr6JzBqYm8hvsNNPNyytbpYbJM+JkBHuPftaLeWcQ4XL1c1kXzRmVkstk+1w6D5fkVV0zvvyMpNH344puLn44ouJTiVqN9xwg/X93e9+N9797ncf4VQdvjEl8vQxNz7mRaNqt9J7KOA4t06ZgBuvrsdjrutD+aNV55Q0GETuRWbpPkGxzpIHsOldz5lxSykaNk5QrH7LeNxSCcyNutNE2aSjnGXowIiKlVsqTnOjnq7cEyZvDnPTr1uqOCTu26mLjku6bqKCYhlsqzwK1I3GyuTbMUU3k32BQgJu4AR77Ak6mipCcTmiuRmQguJuhLnxuUuSBl5ZjxTrSFgya7WREl+XR3R5iRQQYwws8LwLy/zgJiCrpQzBxVQK4fwkTMdfEYLnoGXcB9ZqKXWHIADQNdonCZajLzKBuVEXrsdqKQVuqpvMbD5TEPVtcVUnxc60p15HNDekxCKamwRwk2Rxbjr1LBrdVwGE+rx5rhfckLaqBvYBEhiWbsGQNDHo+S7Ic+LcUu62FywQYOLAQ35XtMU8eSxutZQWLucEq6UmRNQtpbRL1c1AmTDqlhsLvevFMbJ0V/AjYh6CmYJ1/X0Nbqm4ClSR4Gb2cQzd/n4Mnf476ChxZyxzI1iHiWe+jqDbAps4UfyuOqc1MTd0IJdaH8q4aBe1B7DRk1xwY0+97e0XALJaKj5CsU9zM1E2mptijmEFJpBfplPH1l1/Dzb/HfGcU1/pZW7EYNSNV6xZnVpCY2dMdLpzjxtdwG3X44RnHkIoA0IWd5WAORUxdsRoTZ64QywRf/5/BoIqpvZ8GWGmADbxGrIZngE3irkZXHgU/NY/AK78k/gOllprVR9fiYtQzAINEINuHdjzHeCOPxOxl5SVhgVQ7LRE53n+fzZ6MV1uBNyQYgsCBsw/Cdz6AWD/j+T9RkEHd7d66dVSPnGzzyRI98XX0W4pdarbFtRsHwC6LbCWWM3VzRTBg6xIm7XBqwA35OEQwRc9dUUN5o/cBOyRu1dPnwOc+R8scGflIymPN19nyhAQ9U4FZqtuFlsvAKLuKJpSptqyfpgb1Q66bRN7RjM3MfeNu7d+BgE3T34b2H27KL7ikJjwLDwpjpdGSQT3ecNM+FZLUdMMMgE3irnZ823gS9cILU4mBzz/DXZ5088/+Rrw7f9pBxrsyt3KM1lg/HT5DuU1+38EfONPgD13ie8DBNwoYPbwv4i2Re3ujwvBP+0HlW19kdhNHbD7pB99kQTjm5ZgW/WvsEMQAAJcUbnAoOuuTFgscgwtBTfrabqjzUQO+XY6TlbTWz/EV5qhE8SxTh35vd/BjjCPn5z3Hv9tyHODsInNuz8PBo6V8uvE73rTTFXRM7C0JYa3MMespeB2Gi0Owre8nd5XNZ6Rk/Rxuj+QO4u2mBuZFioGzgQMOTXIZMtitRQPsbWaQTYARvIhMjJWjmId8s1D2LL7n02yanN6R23d4FkWQMcGjobC0Tn359Njg5sFuKnNAXvvB374OQz4zmMBMLTVrPqozYmObmgr2JaXYtOefwEHw+rZV0SX3QLoDAo6O9tZBfbcCdz1EWDnNTK5CbN9GTwwDHJoII+VdgjOAizKsaKaBxAEtubmro8Ae7+fnO+RE4HnvcauYzwE3AB36tN9/xd44pvm+qGtVrpZYHdllitLswRufYY9A3c6bEM6Gs2NeLWO4zlbgG4bnRZYywTwM2nxDAaMIWCScVSMHU0jY8DIdvF5aa8BrTMPiEHLl7ekd3nwEeDbfx1/fPJ5wILU20ycIX+M0Yn46rUCYip8gl65NwPDEsjJmE53H+CGlolynXcawP3/Nz5K7tAJRjcTtg3jp/oNX/8FZtiesVPMeUPSFVSfN+ADEILlE15ovtMVbN//pA3uXXvmXmDTuUYXdPfHBYBVNnayAEOMifcCiHat2nY/dvAR4OSfs/v05grwwGfNOZNyRRktg+oWWDZ5pqjjg5sF4zN+Krz1Gejd3x1FS8HNOhpXlTshzo36YlWByEoRdxoaxIObygTwyg8AT30XePhLKNZnoDqhIK6j4yFyzQXtxsmuyE4zP2CnJQiArmqgzJ7JqWOeZ4iunMkBIs7V5jSIc38V2HIhcPLF0hdsOlMGbsBEJM5Nm6TTpCUIGAp1sa9MOz8kVgh1Q4wUGf7w4hGMNvYgCERn3MkK4FKs7bXTWJs1HaSagQUB0AWJKOvp8NfiGtCB/Ob14NWsbMG+E64A412MjY5hYGyzmKkOTIjYFy//b8Dj3wCeuhuozSJQe4uBgzUX/MxNdRt+cs7vY/jQPZjYdxuw+AwZ2BNm+5Im75SngBrDXJOBswwOyMn5lNxpvUOD+CndwFm/IAaZsCs66+UDwOO3Ak9/z4iorTpm0mEvBWfA4tPiy7YXA6f8HDB5FiwxJWlzHMyERaD6H/qsCEsqgIL2ZjGquVHgRmGbINKekS0K92K3pd14ihEMHJE+s1xuTAIbCeDdNvfSd4o2rhiJ7/1/YjWQdmOS/Me0R22qDIe3Aa/4A/F55kExyJ9yqRjE5nYDl1wn2qPKtEpLL0GxjlDsCIop2A4C+1g/gmJaJgUCoJQ+6AW/IZZ9F+Xz53YDU2dJ19q4WPGzIl27Ctzo8nLq/vn/Gdj8fOC0y8QWEUEgmLKLrxUrEKubgQc/D+y9T9Rhn1uqtSwjxgfAaz5q8tNYEAzkA/8k0kTcl/rdvOA3gLNfK0DtzA/FPV74ZlG/ZknIkyAjnjF+qmjvrVXzG+fA3R8T9aS1YoNg5YIsDgE//2HgpItV4k3ZD28DLv1DAWSqJwAXXg3M7wYu/m+COa5ujgduKbg5Ts0SDNpmMzdq4I5jbnw0X8ysiQVi4MjmgYe/hEJ9v17pEb9aiiOrNlEEkFHgxt00M8gaujPS4ahjUbeU+iwGCD+rEwE7uZLoRAjrRWOVCHBDQB4VFMu00DtmCbjpFIatvGwfyqIScNEZwGhuijW1UmFSAKz2qoyrAu02EwxBS5QT85QL4HSYvZgbsrO73OSvObAVs9MvRabbQHXrVuCEM4GnvyvywNqi863PCXBTn0dARKCsMW9vUCgSDRZwrA6dAoALcLO816QtCdzo/Wc2AYeA+SZDI8xgrimuna4oUbYEN90GUFsQ12x/qaib7Tqw9SJBhdcOCnCjI75mAMg6Ruqe7R6CydPm54vZstoLTA/uWdOiLB+wfY6h7zVyMc+OcScqFxcHlwDHYTEA4bbs1MX9JbhR0a+ZkzcNlsCktogACLfN5csCeMxKN8JDXxL6iPo8LL2I1R5jTIHe8dOB8yR4KX1NgJttO+V9MoIpcF2GTpn4wU1MnJslUoe0xfULnt9omSh2aGWfeLcsI8pny4Wmvu+6RbIe0qVTOxQNVKju6dPcTJ9j8soy4vdN54nvU2cJ8LT3PnlPWt7yswrDUB4Hnv96c3hpH7DvfuCxW0Wa9H52MFqbM18NbP9Zw6AxJliTUy61tzzIFgV7tW2n0OM0FkUfpbRI939KRBavGS2fSNuC+Du0FTj3l0nSHbZ54nTxb/Rk8V5ZIPpFxWg9B9xSGyclx4HRIF+uMeeb6PBiNDc+8bFVaTzH9f5Bi3rLgdhBi4cOuJENy91XKuJeY9FjdEDQQfzU/8nmlxHNjcPcuKyH9RtdJhvjlgIsV1HAbOZGnRMQilYNMirQWrEmZ3fVLYapUUK7XAl09urdC8jH3PSaydCd3eXmhZ3isEkvyKBL34fS3tTmEDQNuAnqcwYI0BUXMrXt/LD4adkwfImzfdnp5oY2I8OAEAy7l0U68hlguCiZG6VbaswbzUVp1Kkn3Ao6KZJGAKsFAEwSAsbIfjsj5J6OW0ZfQ+LcqPPUOa5R9oqHsr6K96xZRxXET/3f907p/lLSLaNF1pTxpKwPYwjAtDtVPNqXRvK8Mi0/Hq0bSe9SCdO9IMPpe9yl5pYIlpxHLe+AG3Wtx026ptVStEyU2JVuLmmFlYBV1lrjoywgbil6rvgxmr4gY/9ONTCKPXOvUUCKipLFCeIP3d5Al1HMajJf/++2GV//QBaaWOeoiUckbfrmsPPrPN8ds9y0bSBBcQpu1tMSGixd/WF2FV4DcxM3SKrjuTK47GBzDTFwBCwJ3JABUS2rdJmbOAACaNbDoid1QxC0vuV+88bu0V8QZRHoruDwxLmhbikJbkhHlQkYCnUBFtqFEZNemFD3QUbcq5NVAehkOZRGTOdA9pYSA5M7iHg6/MNhbupzemlmpzBM9gcTaZYJNteRDf0ocxOQ+1iiRJnudn7I5KvtDEI+k50uq27GpGRpfrIo/k6VoPUoHa25kWWYKwk2w+2EFSirE3DjKTd7+wXYy+ED8g64KRsKgO04N57yiwzmAvQGjPAoGpcH+nHijkG0OdKdwaXWSzM3DE59Mc8WWk7KllJw45kYRAYtJ2/9sHB0wHf7LHcQs4S/MeyxMiUo7rYIKwIDbijzoG/rG4KcNkXPcVePKbBn5ZsAMgvIwWxhQvoDb3ulAMllyjXbOo9EcKMXRzimIwDXxHNo0M241WQusLRAuad+q2crdkmdo9odFQiLG5nneN2PDuhdS/yjY2QbJyXHhdmMgGtGFiAH7ril4BaogOc3H7Jm4DJQVb4159zXTabtltJGNTd0dqATQsGN7CQSmBt7fx6XuXHy4K7coW4J8ChI0sxN25uWDOMoNCRYyA/rcwS7I8GN7Aw67uqA0mi0Y8qWrI6OQc7yvaAzpuH7TAfym9egpFsYBmckvVZHJ++nOvXmMoJVs6NzsPikXB7PTAdG0skzeXCljVBLPftgblDdhCkH3ExXoN9HqAJ/KSuNOjNMboMbvZM97aj96QjadbPdRHnEvG/KXARZ0/8yZiYTrlvKtcgM2BlMYeqJHkdczRzgZW6MoFimlT5PfEHAmFh5p39KAGAAATfzzsCm2kCSWypmCwSarjjdWOygR4wGmOt4XC5092nv5MBzb+a8DzeInarjPpDhY26ySnPj6b+o0fS5/SCdkPhWS8UBCHVc77otmRsddLNsdEtJK2gtwBVTv1XQQuWWQp9p68ncOIxeJG0pc3N8WqjoZX+x+oL7+U/0dCJxiJj8HspYBPmGGLSSmJsMYW60WcxNtJO3n6tmiu5qKvGHy87Q9M9JzA251jvDhVkJpVdLEc2NdkuZ/OabcwjCNjgY2oUhUNpeMTxqAGxnnQ6zPGrHdQAkcwPNVDBf53w4gmLdUc5r0aPN3HD/O8kPaICXWditbxfMPSY+DEyamRyzWTCulrnSyMhxpl0Km7W+ZteiKL+pskwTgHbWA26sGaZkGYrD4jfOxWyVBaYIYzQ3eeUuzBZlSHzH1QXAdedYe0vFnCN+C8x5WlAsAayeNyj+jBNBsdOWKXOTJCh2CdCA6XrLIhMKN42IDlprckvFuT5MniOTjL5XdEIscdasRD3K3CQxRnH3dsukOGifq9spBRmkvUSYG9ct5WhuIu5xMqFQ36kr2ecOUy7XssvcuG4pCQD1AoBN5PkOGHYnvBbY8NRvzdzM2ey6avMR5kbd232vveqFO2ndOJBi46TkODCuOqnA0/AR7SxNg+yB0sUHeifPcYBLN0S+ISpwrKCYh8goYRk1Cm7cToUxOwlkmbYvLWCBpO89s0/3XJ+vmw7IWgtBrqO7ggcECKisKDFxblCslLLOEedlFHMTGZhHxMokatLFEpBOhYyDdj7WorkZnBbX8S5hbkbBteaGw8umMaY7dou5UZ8HN1nvknvqCVZk7JHE2b4RgyrmZr/01E2XodMTZkqwNhAojzh1SIK0ICD7oc1Hz1H5oJN1+S71dbTukdVClOuzNTehfR015tQ9BgMsFUunmBtAi/UTmRtnKbgNbkw6ORMRbxJdwe5valDSA6tibqJlGLG4QHr0GbEsmjujjxk6dJC9hrlHoqC4B3PjosG8A24GHObG7Y9c5kYLij39V0w/FGGZdWTxVWcDTwVuYgCEepZiOZVrTWuhksBfDOBz2oA2XU/m7QloL3ADRMEl/etj9PqpF8fANk5KjgNjmrnxzBBBQI3u3dyOyAcE5OfYkNbkXDkjzzdn5ZH4js7L3OQH4J3F6OeQ9KlKbGluFICQ5yZpblzGw1cm6n7WDtwuc9P2zlrzNSkmLoxAxw+BKBMt4FR6ER/rUHEEd1lXUKzS5GNuYmY1PsvkyCaQ4ppuoepnbijLASR3UO5meBZzI4XGNQVu4qh5bolB1bJvZdNlc98QQJcGsyuN2nWIDsR0gHbZHZ1i86zc6oy5J2C/byIWVtdYVY2T+/pcPvTksCsBq51PGueGc5vVMYmUee9EmRtLc8NswM8CaLcUCwJE25zzMDojdwXVQPy77DTNJojuxofWM9w6nNQfeMwK5McjdQiAFdCwJ1MVcUs5bVW7pTxMEwviNTde5hkw+VchA9xJXiAji0swu7zfHFNlr9y9Ec2NckvJutKui9+WCXOjT02SKhA2yWkD2tSza/N2H63S5gqKY91Sce7KONd7H33eUbIU3KyrKQTtf8HRncFjqF8vc0Ou82luYDM3okONATdhBxmlYaBmMTeeGQsdEHxIXg38cvbLQVdLJbmlSIPydM6Mk3CAXuYmq89TlpOujJZaHWT52BVzI+4VcamUR+29ZTI58Y8FhgES4gs3pXYe+vU/046mNAIEWXBLI6Q6L9jl5rJL1GgUURbYTIZ63moPcNNYNILq6mahsSE2RZkbDnQzBNyUPeBGPUe7xeacjpowN3SyrtxSCgTSd+nRG7CIJoFHzvFOJMIuGDMKL32GcktxROuxsl6amxjAm2GBrre8H7eUBjcLdlTaXhoSxQ5k8tFAenDaNkh6ew16rqnl4GobDqcOyZv2vg89TtuR1qRIU3VJMzcOcHL3QQoSNDdxbimf3kWBqhUPuFEgUpWzPq7ADdl1m8OzqajzfJU2kwi7//XVbzqBUOCm09SsYqzLzNfvq2fSPKy1XhwD2zgpOR6sx4w9iOtAXIsTaPXo+JjcSyjfOChSENfRrR4C42Jvm25QML8XBpxGFcPcUCqSR5kbACaInxkhnHTTz75OhbqlCHOjGCy6FJyufJCmmRsNbihzIzU3zmopQETiRX7A3hVY0cgs0OJScP8s38pDv0bBTWVcDLCatUL8OyHsUjco2G6hKtnp1+mguQJualVVHMOnZtzFYSBXEkwNMSooBriHuXGAi8qHym99zp6Zk/ZANS3ZmsPc+Fa6BBkzPpP/27S9h1GljKh+p8otpU6RzA0MoI3o5yxw4zA3YDbQNJmUq6UkcwNnIPdNDMrj4jsPdegAK29xfQqNfeS6xX19jDtD70dQDJBAflJz49Qh+96At6+M9H/knFzZAfgK3KhB1wErpRF7ywUdxK8H0+UDftS0a/eA/fx2wyyF76W5iTA3m6PnejU3Lnj31G8FbppLxv2lYnZlC9EtFnppaJLqhe/8DWAbJyXHgyWJ5BAHeYBIRYnrRLz+V/M5lINWoXHIpsJdkx1OOz+EVpHMLvT2C/IZEXqYpC9S2U0nxGSHwC1wk8Tc0DyZ55vByhMN2OeWIoO0cmW0C8OyfySiY5lmpZ9RM2wA6BTHRP4oc6N0BIzmMUFQjGSQGzHqAiuPyQGWxO6JE3mTNLaK4+jkyax2cLPDwtHr5KoVNTj2qCdqxj3l9IfTRFAccqG70VYasdPLQ1MsKt21eT+whd0EtFtKbWBouaWiLqcoc+NxS1HTLtYOAiZW+YmcKSbSMDea1XFfbS5JcyPTIS+k1wr4RxhfrxaNXpAVQAEwWhaat7h3ueQZQH39lfsuYge9mLpNN7akYlmfngSI0UG5A3lgn0/3axpIYm5k3aIgQ/Ub3vIieYprO+qzy9yo89VqpGzJ1AnXFHPTluxWInPjGxPcNuNxSxWHDUul2rFaoq72ZbMsTgPlAmyPlCLGk3CsLQU362gqiB+L0cdogaJbAXR96QVukHicDSrm5pBgJ2JncWrgH0WrMGp+zxNwE0eR62PRAck20W0zeo17D/PFfPSIHBmXO3DTa6wIxWowirqlOvkhkQrLnaSYGxmhmLilOiUJ9ioTJl1q6SYLEFkt5fM3r9ktRYCUpLK5BjeIfyeDFNw477JqC4qttCiqXs86Y9K1ZGslXLfUJHVLhQ5zo4KrWeBGMTdqt+Y5J0/ULUWYG1dzY4XwN4JaF4yIc7h1jjbfe1P0vfPeAo+gOGIq74S56eR8q6VMOlWEYrPyzmHmfMwNC4xrSrmaaN56AtWEAdR6lqO5cS2WuaFxaLi9Ekg/twf4d9PjlrligHJlosFxNUIeVx4LDLvhFRSTNFmrlTzlo+rwqsPc6JVSI4iUXayguJ/VZG6ZeNoVrd9BxgjwfeDGrSe94ta4esI4IXYKbo4/45wIVWOKNeKi6cct1dOfaY4HA5Oiw+QdZDsr8R2dnG20CqNoFRzmxnJluAMAmUnq2S4ZEBR4A8xScF8+IvnyzN4jbilnhpD1aW5MftWA2M4Pi0dpDYt5TxktKHaYG0DQ18Uh8Tlv3FL2Ci5PPmge+mVuqFtKdkjcYm5i3gkZMFqFMRvcDG62rrMG/KpkbmpzAhzGDoj2KpdKlqOcFfccKXAUMqYecBDNDQuAwpCnDnHrfsmCYmPZVXe1lNJLkGtInBsdZVid5NHleNuVdH+67IwRFK+NubEFxfRdmDRYwCeOubEGGxgmQu2XZDF6MX2Kl7nxgAyflk6loS+3lNLcyIG7Hz2Ja24ZuN+VS6U8Fk2v794K3GQLJg99a25c5kYe17o1J1aUYm58AEK9mwLV3HRjgGcvHaZncknrN2WsFAiuJwAvi232gZs4txT8E4UNYCm4WScTE8Rk5ibQgz/peOlfV7wlbkbukHyc5QrazZRvLSK2o5OdYqswirYazIOsaPxJjdqaSboAjR4X/7MFxU6lj+Qrej89E+dq2TW5Bw3i54lzowbEdn7YdvOQ2b4etDI58ECApW5x1KRPCQLVTBFmiTHzAgJ31uc5xWeUuSmNSnBIoi7HvZNEcDNtgyxaT8pjkrLmwg8f68pwZpQ8xHhR5G1CF4nIZMg5ulky6KiVP17mhkR4jemoAzLIZGoHdNmIZ9J7Gkpet47AGYh1lYpzS8m/oR2Y0cxFTNlpB6lbnzVzQ/aWoruC+wAvU0H8yKSol+aGMjeKefO6iR1LZG48fUwv4Whc5XYjCC/L7Uu8epK4BhLDUqhrKLhJTK80NchniL6wV3nFsZ6auYkR5VvsSB/MTX3BBN2k/UBEUBwD+KzVqnQ1YABUZP+lXGeJwEtd54JYZ8zxuiv7AL3HwDZOSo4DYz0abWQRVV+C4pjPnt+CIECzJBpIrrmQ0NFJ5qY4ZpibfEWkO26VAK3EVmcapfLF4CyuD/oCN+Q4j5Yh42rQ8bmlzPYL6tqg00BGRmBuFyT7Ym2/IM8LMpLJZQilH7+r9AyMmdU5OeqWMiCJRWYt6hFr1NzQyK2lEfEaFIgC4t8JATft4hja6l1mS4J1irsuyNpRVnsJilX6OAi4cd4TJ0vBFSikz6WdsGKOOnXRweu6RAXF4m++MQsWdsQ5xSHYQM0vpmS0rsYJin0DVtiRHaIaUORlZLLi2VFMmGJuOi0tKDVB/GC7pcgtAgbbxelt405atd5jhqTfvAevOS5Gca5PcxM3Q3fbb0w5qDg0Kv5LP3oS1yJMiQOqcqSexTI35BpVXlkFbmLAAa03+ncPcwQQt9QhlSnxR4Obkfj+nQbxU+BoYNJM2Kx8OG4h9Rtz0wmnfgdR5ka5zEojCW6pmH460kY3vqA43RV8nYwDusLERihm7oeY2YZLQ+vPvopOQACT4Gb+R8i1FsSM4B9fL3aPpib3MWkVRtHJyc5INbjY1VLkWV7NDUH4hLmJpN2TbrsD8zBBSYLi2ceAj/4MEHZQ5MDLWFaXZzdTRDdTFpVcz2pC6O0XlP6BAWG2iExrCV3FftAZsupMGRWD9iMo7tNczU3DMDdBwGDF3KDPy5XETLm5jGZxDKHcsgEDkzItfuqYsUAMNot7SHh2Yo/8G/Dld5kZXzXK3ExqraRiboBuhs6onfTSVXWFIQHAOnXgU68Vu4df8GsmHXd9BJvv+AtMhV0w1XlXJkTnHac3cHeTp++iX0Ex7wIWsBT3CMig4S4T16aAXbsGdJsAYpgbZ6AUUbKTJhTu05gJAfDjrwK77xC/DU4DP/t7nhU60pY9wl59S09/45uhx/Q7lkWYmzVGJ3Z/T2JuKmPRfsgHblR5KebGrUM+i5sYqM8qVtTKDPChk0Q5hW2y55UHQChTbinOgUXFbDlL1nsFdnUnl4BTv5kBdQ/+M/DIv4o9rADh3o0AL/o8z7uNgMg11otjYBsHZj3HjXMOteqht6C4R7HHMjcJlU5+bpZFo8s2FwRD8+iXRVRK+i/sgLMMVoZOx+rQqeBBDph8nsqIuln8s+Nm5PI8ps/pd/sF0kA8s1jDkpBrRk8RDAQPxWypuQzWWka+OY98awEAsDJ5oUwPg7W5pl4+bNLXqu5AyLJoj5xk0jd5lvg8frrJG2Vu3HJxqdt+G3pxGBjaKuhiSXdzZpY2x84igwwwcQZ4kMNK9VSsDJ8hQNHm85102HFuGGPO/jhOJ/yDz4jd0MOOGLQ3nScPcJwzKtLy/AlbuBlyjtWhU8Rvqi7FzZCDDDB5hvjcXBZ1tNOC7mDv+Ttk6oeQb84j114Sv219kXme1dFyfU8TxM9hbsg5xjzvLexabJwhHc253dggfhLt1UUATc4CreWyV0uZ+3HAdksFnoFc5Vn/Jusly4j301wWy30P/RjY94B/QKUrcvplbrwu84TJijLFdspYP8l6kjjmJqavUdeMnyo+Tp7lmVB4BMWTZ4m+YvyU6D17am5i3FKDU8Y1VZsV7ai5LLeDCYDx00ianHxnyybvi0+Jvy7odLdfsMqe/B7XN7AAmJLlo0TuvCsmhaMnJTM3vvzGTdz6rRfHwFLmZp2M6/8BkRgY0mwXDRlkk1C6t+LEVCYWoKXcUq15E0xqaBvwhs+Z8xafwuLsfjS6WxAGWaz+/P/CwFY5gMU1asu36usE7PRyJjfO9OmIInkgn6nmRhUHD8FYxj5v+ATgqo+LDRg3Px/Yez9a3RD34nkAApw4XsEMxhA8eadchKJm3Bx0Lx8m38WBc96Cle2/gmp5EmImzYCTLwYmzwTGThYsBgvA5H5dYkDK+vOxVrdUkAEu/xMZIySEYA/ILtdhR97OeSdBBnjJ76FeW0arNYlOYRTt//gx5LddaKeDBaCdEguYvWGnO4tTA9KVHwLOfZ0ZsHiIn9/WxfaTT8GLc4+Qe4u7z09ehPp//N8ojWwRolqLPu/Y6X7pu8RzvvbfRXAxCrLk8+976SfQKG/GSVODmNq0DdhzFxQrqPNHgWSg3rGnfqrn+ozMghk8QfyUfohzhJw8g5pibqTLt1OaILGVbObGNBVmu6Uic80YcDOyHfiFj4mBavUQ8MN/Bp76TryLsT6v2aSeq5aSGA3foOeacmHWpVhduW0Ol7nxMQPnvE6wfcNbo+mNgAIAQ1uAX/jfotxWDzp1yAE3kTS6g7f8nMkDV/65YGumzhb1fe99Qsu29SJg4QlPGSqQHQgZQGtFsKdAlLlx8xEBoE678mllps4GXvMxAbxXD4ll+tPnSEDVJ3MTcUs57so4MLQBLAU362rJjTY6zLsVzAME4licGGsp5qa1CKzKfUSGt5qZMiB8uys18LqoyCxfie5N4zIltPF4Zz4UuMnvVkfeg7mJuKUAa2USMtF7FAbEv4kzRePthKjxk8CDLLpjg8D8gjzRpJfx0MyU5eACACECdLNlsx+XyiMNbGgNml2wSPNx8tAvc8OYeCfZPNCu6cHZTJYom0XrRoZ0lIFYoZYfMOmg6bZeZSaZuVGz/C0XGmBDQuYPFHOAnjCKZ4UyYnNgBYJETD1hIt1DW8T+WEtPyz1wQqCxpFcbzU+8AGG2jHCsCrCWvDzGLUXrEK0n1uAVp7lRlUAxN9F2JrFNb82NinFTMToqgZ+joF2ll0Ftv8C8z46klTEBhCsTIubL8FYJbub9oEStlCqN2rFX1iQoJscin4lp0Dwng8ZxMeDTaL0eXZ1tbn6dMglku6Tv3HVLuWml2zYkuqXcSVuMW4ox0V7Lm0TfWl8QwClbFG4wH7ihYFKBm4WnxU/uNhGRftUFfE76fQwTA1AaNvWkOCS+Lz7lcUvR28dMPOnz4paO9zuhOwq2cWDWc9w4hxaq9lotFZnhP6vtF+xz22XRqWab85oij84KhECXQw6IDB6fdQJz49NSEFBjIuwmuaU8HbZ7nAISl3alZs3IFSsDZCyKmgIPIijWg7O8lU/fEprf1E7iJvZOQkfQb0O3BmvBGwhBdsZ5Pi0DUj6MyfgrMfXK10HrnY3nYYHsMDRCVaveqHJlWg9E0865it/LYO/LEy1DKy2a2p8D3YcoLFQRytVXgUIWOt9kAKJLrAOiU3LrJ9CbuQm7CEg9t1ZEyTyb1VLOPWiMH9jgJjHODWMaUPPIAOUZ2HwuYQUcfPopwL8xI5DslvKxyn0xN7LOdOp2jBurT/SwK9SCuP4PiPRDOr3q1p57e104TltxLS78ggs2IsJr2jfG3Jsxo01akuDG3eAzabWUrw64IJB+97W9WOBF8uh7fmSscvvtjQMpNk5KnuMmuvb+BMUmEFhc5Xcqqe/3mOMtqrlRzE1kVkAHZsmu+MBNZAZFwJVuONGZkpqPckaD+HnAi3VFEjAI7QHLPU4HW24G4YAMyBoIEIEpC4zrp6sJK8/KFYv6VYBLxt5Zl5kKHaxN/BwWeT55J5EZLYkI7XmXWo+irqXuA9rRrR40ugHP0lQGgAcZHbDSgBsQIOOpQ54yBGBvxUAi2oYDps5a9dMabLgzCKlHkHPimBuvK0YJipl7hi6/kEeuFuZEo+0OxDA3TttmDAh02UbfafRpzE4vEN1M0zXfxoziBiSB6vYxbh63jcYNYoUBswXD3GPyudP2Ob3cUvSYd9D2tAFv/+XmyQO6OQE86p7W7869NPCKm0g44Nsy8m4Uk9SVjGRsGcVMaCPuXk/d8eXb546jaYsDsYn1gvztl60+CpaCm3UyxdyIwSMZ3EQ1Oa7mJqYTYZ7OzjmumJtMe9WsdvHMCkQaAr0ypOds381I3AxAtg3FJPS3cSaijYKZODc2m+JLj0irIKEkK8MAxmTaqFCThxbDptIXqt98dDSnzI1Kg080nATgEozOIi0mwuloaZpIB8cgZ/26OXtm3SrdTF6rBjp312A1EFYmgQxxu5FBk7MM+coEa0OrcGIZJoGb0DA3Fjhg/npJBcUUeFq4OM694Hlvob3Tu90MxbWhs0xcm8PcdCsGSAh2kLxXel8wXWf7FhS7jKLeJDHOLeUR9QIxQMCdeCWwD3Gm6tbsYzHP7cHciIPmHC/ggzMQx+gX6eckBsPtW3112AuYfIx3L3aEmW0qlEVWsbmamxhwk7R7uZeximFgYnWCTh2M1YnG9PPH0DZOSo4L43Lw8Dd8HcQvlhKlFcXXsTHrtOjxAGGhim5GziJnd4m/bucCbgEQ8ZNviZ/bqZAOwJ2dRIBXYO8tFRn44wYac74a3AMfjR3pvOz0CLqfPFsDAeOWYsy4zYxQ1OP+IJ0iU0u0fb799XBLSecOl+DTej5NU2QwZ+C6n4/vcDX4Vp1pt2mWiAI9B8JIvCEWWEDHAje0DoWeWTNAdgiX7jHJ3PBBCg4AuzOlYJAO0IE8n9zflxbXCENmgKJ7jnRLaebGebcOc9Oh4Iymg7KZsrwCqbnh7vYLcX2Ay+ip5d+NBVu4rcy7MSNstkHfP2aG3q9bCjB1R/U/cS6XpPah7+97bx7g0w9zQ9nDvtum0+9F0udKC3yAC/Z35gE3HumA/RzymaYp9LAy7ndrQUIM8LLS6slnL29Dytwcv8aJ4LIXc2MqD5mpx57cq0OxO0MR60YOGI0F8dfL3MhrmWRXemluLDqYzhIcxK8anuyEma+DjuQrrrNRDauHAJEyN8R9ohkaOriTbTKCIIhobpiHCbCoaxdgJjXmNTM3XfOVEdbLOztzyowRMOQBqgR/iP/lSmYDRh2IDAkDoQ1iOXnfivXiUGybR6/APbNHgLjHJOsg9SEU3ETixNBZJBkorZV5bmfs1mdq5D0zUo4WDFHZ8LA6ACLMDXWriVhFNP36rtZzIoJiL5PrqZelUYBlRHmoKLTUejE3PkDlFdp6zvOZqjuq/+mHMXJNv8qEfoimKVFQrJ4bw3IkWSxzE/PcfpmbAgE3ubLZ6iVyrpOWyDP60Nzoc0i6kxg5H+sVB3ojoCYFN8efqYEUiG04sYJiZb6ZURwl654nPwcMOkqxNk/nIpibQA5IgJfWjTRmH7iJpl0Mb46LIOJ2ir/e/R5EGpB6CjnXabRiJRQVatLneVZLKUGxBeDUQdNxBTFicb/1C27UzJLoWhAYV1JIgIWvg4N8l4op0y5GornxiIANsJg1x3Q8FEcDEKHJzV8DnJgdhdtiGWK0XHQTTSIo5gMOcxPrljJ50sH3ApcBAenYfZMG6DQGDEYTR28R+NojMYe5UW41swgxSvtzptynJg/e+0fcDU69zOSiex1R6wlYPezA4QqKgWh/4z63n9WEMfU8th/yudXde8W5KMWP/jRZ4Ib+7oJAX/10M0U1NwTcDG6KPjdpJRti2lWc68qX7yTg5Z1Qu2NWzDvsFzQeBds4KXmOG6foOGZQC3T7IQNx7JI836zNqWjWb5CDL0PDBTcDrliNQ4thWbwINTpA0DS5eXQGDSYFruq3WPASh/jNTDzWtaXTKU5iMm+AKOvAYnzMgGWYGxMoL+S+9KkGTdxSegdyT5oOl5KNmWFpQOITBDICfnSHFNfhMjvdKp1ad0PAjS/omnXPgN4ZlLmh7yyS3rgZJmVuwi5ZYUPdOsxxLzn3lM/S9YXm0UoL+d3riumClqM9gVU7g5NnUIswN5tN2gEbaJI6r/6L5I0+JW7QomWq3+UamJskfYruD2hayHlJIN91scQyN/2AmxhAqo5FGAXPvZMYWHov3zMstjYBBFrPddsh7HMZs5kbX9ToJFd8P4wo/e7TLCZGKKa3cUG9HLNiBcUbB1JsnJQ8x42TWXd8w492mr7j1kleijBmQJUDfLNEwExl3OygbRKrBwDtXtCA3Ke58VTguM6BCR2BCJUXaBdLNKsJg436rgerpIZDjzEwwsowz2zfegpzBmOajBh2Sq9gYu4FkbuvAez4yyeIXM+i5SZLRy0jFgDP19F73h2NSaJmd77dowFTLyRC5zB1wxRzQnpJvqxyUYxD2BHsjWJuSIfPAsBL+1v3ZcnMTT91SH7inrriCuMjG2dS5iY/oAcvcxoBmm7z1bd2YjnFTmw89UyBQZe56TRNMM9YzU2Cu8U76PWo1+5gHacnSbwPra8xfYU1yCeBG8+A3e8gbJ3rKYO1uKXotS5z41pSPtwJgnpuZNKb0B4jwIue02PM8cW48faHx9ZScLNOxnvFbgDdOFM1DCNujVgEMcfc2znOGLPdUgP+hqNj0ahGkNRIIxXYA25MIqxzIgLUSLrjZ0yRdhU3i1HnA17mhsWkl8a5MZPkZAAXRAa+hE601yCgT3PLR353wYL1Ttz6oYAqg65TlltKpZvc07d5Zg/mRsm0OSknPUZGBl0fQFTlKs/NFs1u3yv7yX5WcauN4uuTymNAgLH1XHW9TG3kmD6sJiHkLQd2viNvljI3A1Ok7jqDICM8jWwfNqMbN3Eh79vnUrHeJTEV4yZTEHsKUUtySyUJZXsBgwhz0weocq1XfvUxVUauuySh3/TWIaeP812byNz43HcJ7IiKcwN4GDX4y4jWYW+7CuK/u78lLQX3TQQs1oesUkyZm+PfuF7REl+kxs1CKn9cpMfETjhuFiUAgQVuBh0XlXyu6qJ1LBrfzCeRqo3rHNTMXjQS5uYr5nyfReIFeRkg06gYg2FuYJbYmrzYTE0QmAjKUXdDTB5piH/7AvdLYt6SzjMAywk6Z3XmTnknUvSBBUa00UB+6lytufHrMyIriVhgltFHqokHZETeOzPszcFHxXNYBqw8aV/hY6FinuWvbr624x5Tt4+eY7mOfKdksuZ9DU5r0KzxqQU07TIwReErL5MCc45n0Kp6XIyAvbO7e++1br/QR5sFYIOZQtVsPKuf24+gOKEv1Id8db5PcNP3xIM8w8uqORMJt9+gC01oX28xNx63lHc1Jk2Hp68JnPR5GSsFtuOWgqPH2CPTFqsX7bNcj4IdU3Bzxx134NWvfjU2b94MxhhuvPHGntfcdtttuOCCC1AoFHDKKafghhtuOOLp7Mt6hhQ3HZ2m9BNDYPfL3JDnydU/NrhxhaGACuKXHBvFw9z4qOJIOiTjwpTA1QcSaF7iZkx0sPLNCpyOVj2LJt8NqshsbsFibtxBK2bmk7jp6XoxN4qBiDA3zMqv/czAaJycVyneicO4AEB1i/irogO3VoHmojzmmU3CvAtOnm/ATY/ZpJVu8leJig88JP4OToNlDLBzI/zG3ZNZ944BmpFyg3U/BuZ1S/UUFAPG/TswRcCNM5gwA6hd/ZbYPy0GhFmMoif/aoCsz9kDqnIz+nQdSaJVXXc8jEQvcFOZMPcc8E2u1KMS7uNjbnz9EJzy9cZr8Q3ybhn2ca6vziQx3uJA9DNjjuZmrcxNQrvq1Ue7zFzECPDzgjl1bSooTrTV1VWcd955+MhHPtLX+bt378arXvUqvOIVr8D999+Pt7/97Xjzm9+Mr371q0c4pb2N9yGS03FudKm7bqk4lO4cj6OrIQCUJSj2dS4qQrGkmgXrn+CzjgAJ38zHHGOACeLn5kuf3hsIMD1AqB8SQJJ2F8TEuZHn2hNCuj2EZxbt6egCtRmitzOMGZB6mZMvAxISZpzkvRu2QXX0CXFuLObG2V9KsTa5iokyq0zdS2tuTDr0cOIDY3F5pXVJMzdyM87BTZbeSNRPj3skck8FCoOe58Slk9ZXu65IcKjP8OQtU5DpnzbZU8c8e0vp1kEH7TgAYYEbzzENVOdh9SmaufGB1YQBNClCca8BLMiYLSEGJqPH1xqh2Pxo/0YHcM8Kwci96H36bZtx7jj3uT63Dk2PdS4D8sQt5dVC+Vx3nnqiD/UCJHDKK8EtFVsHybXPAUHxMd0488orr8SVV17Z9/kf//jHsWPHDnz4wx8GAJx55pm488478Zd/+Ze4/PLLj1Qy+zKuZ68x+9f4rNsG2vWYgwlAxjrNrlwMDK3ShFzizUUn4z5DBytjhkUKu+K8rifgUyRNScyNOo9sB5CUbgdceO8XN6ty0wQgEzYRdBpg7ToCtROyGzJdfQuC6GN75DEiJO27k0wy+x5a1+EK0xNmsRwBNFANO+JdkqBlFiOlTMcjWQIOPAwcelT+Pg10Gvaz5XcFGTscaHVChJ0QDabi8/TD3Hg6Q7Wab+5x8XdgCqxTR6Ce2ambMPV6cGeI+P01wCW/0bT4nk+PQbBlhrkhoMdlbnyvPSOZm/KoTn8mk3XeBYHc7j2sCMUx6fe5S1lAXIxzwr2noksfkIBxYCLaD+gytVCc+KvqUGTvOE/afFYZF1t5+Pof+i5jLaEd0rRqZiyU/VdCnvT33nXIfkbCRBNcBMHskDzRdtuuAaGsF3R1H9XclEfsMrJCHHjqaWLfzESWYs9R5cXtZ9JAob5n02O+cu6X1TuK9pzaFfyuu+7CpZdeav12+eWX4+1vf3vsNc1mE81mU39fWlo6MokLY2g6YoGr15h73HTo7rW+BpXUMeuZOcCDHMJCFZnmItBcBh6/LZIWtf2CvlVrxTmPNmpPZmI7JqWzEZSxYRXirvfkSd1HzcR9z4y4GcTfgcVHUeFANlNFod6mKSIdGjTLEOuWihlE1OaMrgbDuTgmTzHmgBijzfLNON1BlrwjLj83Fux3yQL/qyyPAUFWDGR/e7H5PVv01hma1oPLbczPLWOpsYBWKRe9t5tekzk73UBUF8a7CHbfjtEDiwCATK5K3EK0E3faHGWn4t6Ft97a5+p2ar1a9x15bqPcUu06Cnu+idFDqyjmMgAGrQtdxsaqg17GAvb79gXYG5LMTacBfGxnNG2tWvw79TESbh2KYzDirDIB4GFRv+Kem9Q+fGDOneRQ4MG7kTrv/ayuU3/josTTc32Ak95z9+2e6yVwevLbiBhjBNwwObH4SfS8SD5ovnuAd9n/Rs6hbinfe0maTLNAlPNTd9Mf7b8biLnZOCnpw2ZmZjA1ZXeEU1NTWFpaQr3uZ0Cuv/56DA0N6X9bt249QqnjYuCL23kYwEg5h3I+g6HJrUCQM5WNBVHB3+C02FxNRZEFxGCUK9tUb06eI10Mk4MFlPIZdM/4j8DwNmD8dPs58l9QqGB0fBKDI2PIlar28WxRrKzID4jImWqGPzAlnl8ZB7IFkR4WiA5MaXsGpxEUBzAyNoHq6BiyxapfMJcfFPeuknurMikMAoVBVEcmkCuUMVQuilmx2iAQENfmB5zrsxiuFFAp5pDPZsTffB7VSfnOq5uRz2VRKeQwMLEdADA+UEA2w9CqTCGfz6JckAHRMlnxvExepClXAkojGKiOIFcewnClINJL3X65MlAaIWWSoDdwbXCTLP8MBia2yXpygrgPC0x+y6OyDkzp63KlKgZHxjE6PgmWr9jvMlcGisOoVEeRKw9hYPJE88wgAM74DyIInPqXKwHbf9ZbZxBkMTh+AnLZAO3yFMJcGd3iEIIAyAQMI5ObTXm5dUiViUp3dbN4z8Uh4PQrxe+ZnHCHbX0RMpkMqqU8Bkt5ZDOyDGh5Vzfr8lJ1YGjiBGSLFVTHpswqrEj93GTSpMx5zyPj0xip5FDImu5xaHIrkCujUxrFYDGLgbxnXnj6q4ChE4DJ56FcyKGQE/XRvAtZh4pZDBSzGJ3cDGQLGCrnkSuURLpVHXK1cjrdVaA0LM5jgQngl68AJ/+c/S7Vv/IYsPl8/ztV7VhZacTc26pDQ+LdFAZjXFyOnfULIl0nvMD/3EzO7Inls0FZFkn9UHncfs/63nn73sUhUT591CEMTDr9UNWUCX0nmaw4181T5N4x5T15JjB5FnDSy03dc/8NTNrjyeC0qR/qXbh5Gtxs9xXZIimTMQHAlSbK/Sf7CvOenX67usk+P8iasWhwkymvDWKM8yRV69Ezxhi++MUv4qqrroo957TTTsMb3/hGXHvttfq3L3/5y3jVq16FWq2GUqkUucbH3GzduhWLi4uoVjfOi0gttdRSSy211OJtaWkJQ0NDfY3fzym31PT0NPbv32/9tn//flSrVS+wAYBCoYBCoXA0kpdaaqmlllpqqW0Ae065pXbu3IlbbrnF+u3mm2/Gzp0eH3NqqaWWWmqppfZTaccU3KysrOD+++/H/fffD0As9b7//vuxZ88eAMC1116LX/u1X9Pnv/Wtb8Xjjz+Od7/73XjkkUfw0Y9+FP/0T/+E3/u93zsWyU8ttdRSSy211DagHVNwc8899+D888/H+eefDwB4xzvegfPPPx/XXXcdAGDfvn0a6ADAjh078G//9m+4+eabcd555+HDH/4wPvGJTxzzZeCppZZaaqmlltrGsQ0jKD5athZBUmqppZZaaqmltjFsLeP3c0pzk1pqqaWWWmqppdbLUnCTWmqppZZaaqkdV5aCm9RSSy211FJL7biyFNykllpqqaWWWmrHlaXgJrXUUksttdRSO64sBTeppZZaaqmlltpxZSm4SS211FJLLbXUjitLwU1qqaWWWmqppXZcWQpuUksttdRSSy2148qeU7uCr4epgMxLS0vHOCWppZZaaqmlllq/psbtfjZW+KkDN8vLywCArVu3HuOUpJZaaqmlllpqa7Xl5WUMDQ0lnvNTt7dUGIbYu3cvBgcHwRhb13svLS1h69ateOqpp9J9q46ApeV75C0t4yNrafkeWUvL98jbsSxjzjmWl5exefNmBEGyquanjrkJggAnnHDCEX1GtVpNG9YRtLR8j7ylZXxkLS3fI2tp+R55O1Zl3IuxUZYKilNLLbXUUksttePKUnCTWmqppZZaaqkdV5aCm3W0QqGA973vfSgUCsc6KcelpeV75C0t4yNrafkeWUvL98jbc6WMf+oExamlllpqqaWW2vFtKXOTWmqppZZaaqkdV5aCm9RSSy211FJL7biyFNykllpqqaWWWmrHlaXgJrXUUksttdRSO64sBTfrZB/5yEewfft2FItFXHTRRfjud797rJP0nLX3v//9YIxZ/8444wx9vNFo4JprrsHY2BgGBgbw2te+Fvv37z+GKd7Ydscdd+DVr341Nm/eDMYYbrzxRus45xzXXXcdNm3ahFKphEsvvRQ/+clPrHPm5ubwhje8AdVqFcPDw3jTm96ElZWVo5iLjWu9yvfXf/3XI/X5iiuusM5Jyzferr/+erzwhS/E4OAgJicncdVVV+HRRx+1zumnT9izZw9e9apXoVwuY3JyEu9617vQ6XSOZlY2rPVTxhdffHGkHr/1rW+1ztlIZZyCm3Wwz372s3jHO96B973vffj+97+P8847D5dffjkOHDhwrJP2nLWzzjoL+/bt0//uvPNOfez3fu/38K//+q/43Oc+h9tvvx179+7FL/7iLx7D1G5sW11dxXnnnYePfOQj3uMf+tCH8Nd//df4+Mc/jrvvvhuVSgWXX345Go2GPucNb3gDfvSjH+Hmm2/GTTfdhDvuuAO/+Zu/ebSysKGtV/kCwBVXXGHV53/8x3+0jqflG2+33347rrnmGnznO9/BzTffjHa7jcsuuwyrq6v6nF59Qrfbxate9Sq0Wi18+9vfxic/+UnccMMNuO66645Fljac9VPGAPCWt7zFqscf+tCH9LENV8Y8tWdtL3rRi/g111yjv3e7Xb5582Z+/fXXH8NUPXftfe97Hz/vvPO8xxYWFngul+Of+9zn9G8PP/wwB8Dvuuuuo5TC564B4F/84hf19zAM+fT0NP+zP/sz/dvCwgIvFAr8H//xHznnnD/00EMcAP/e976nz/nKV77CGWP8mWeeOWppfy6YW76cc3711Vfz17zmNbHXpOW7Njtw4AAHwG+//XbOeX99wpe//GUeBAGfmZnR53zsYx/j1WqVN5vNo5uB54C5Zcw55y9/+cv57/7u78Zes9HKOGVunqW1Wi3ce++9uPTSS/VvQRDg0ksvxV133XUMU/bctp/85CfYvHkzTjrpJLzhDW/Anj17AAD33nsv2u22Vd5nnHEGtm3blpb3Ydju3bsxMzNjlefQ0BAuuugiXZ533XUXhoeH8YIXvECfc+mllyIIAtx9991HPc3PRbvtttswOTmJ008/Hb/1W7+F2dlZfSwt37XZ4uIiAGB0dBRAf33CXXfdhXPOOQdTU1P6nMsvvxxLS0v40Y9+dBRT/9wwt4yVfepTn8L4+DjOPvtsXHvttajVavrYRivjn7qNM9fbDh06hG63a71QAJiamsIjjzxyjFL13LaLLroIN9xwA04//XTs27cPf/iHf4iXvvSlePDBBzEzM4N8Po/h4WHrmqmpKczMzBybBD+HTZWZr/6qYzMzM5icnLSOZ7NZjI6OpmXeh11xxRX4xV/8RezYsQOPPfYY/vt//++48sorcddddyGTyaTluwYLwxBvf/vb8ZKXvARnn302APTVJ8zMzHjruDqWmjFfGQPAf/pP/wknnngiNm/ejAceeADvec978Oijj+ILX/gCgI1Xxim4SW3D2ZVXXqk/n3vuubjoootw4okn4p/+6Z9QKpWOYcpSS23t9qu/+qv68znnnINzzz0XJ598Mm677TZccsklxzBlzz275ppr8OCDD1oavNTW1+LKmGrAzjnnHGzatAmXXHIJHnvsMZx88slHO5k9LXVLPUsbHx9HJpOJKPP379+P6enpY5Sq48uGh4dx2mmnYdeuXZienkar1cLCwoJ1Tlreh2eqzJLq7/T0dEQc3+l0MDc3l5b5YdhJJ52E8fFx7Nq1C0Bavv3a2972Ntx00034xje+gRNOOEH/3k+fMD097a3j6lhqwuLK2GcXXXQRAFj1eCOVcQpunqXl83lceOGFuOWWW/RvYRjilltuwc6dO49hyo4fW1lZwWOPPYZNmzbhwgsvRC6Xs8r70UcfxZ49e9LyPgzbsWMHpqenrfJcWlrC3Xffrctz586dWFhYwL333qvPufXWWxGGoe7gUuvfnn76aczOzmLTpk0A0vLtZZxzvO1tb8MXv/hF3HrrrdixY4d1vJ8+YefOnfjhD39ogcibb74Z1WoVz3ve845ORjaw9Spjn91///0AYNXjDVXGR13CfBzaZz7zGV4oFPgNN9zAH3roIf6bv/mbfHh42FKNp9a/vfOd7+S33XYb3717N//Wt77FL730Uj4+Ps4PHDjAOef8rW99K9+2bRu/9dZb+T333MN37tzJd+7ceYxTvXFteXmZ33ffffy+++7jAPhf/MVf8Pvuu48/+eSTnHPOP/jBD/Lh4WH+pS99iT/wwAP8Na95Dd+xYwev1+v6HldccQU///zz+d13383vvPNOfuqpp/LXv/71xypLG8qSynd5eZn//u//Pr/rrrv47t27+de//nV+wQUX8FNPPZU3Gg19j7R84+23fuu3+NDQEL/tttv4vn379L9arabP6dUndDodfvbZZ/PLLruM33///fzf//3f+cTEBL/22muPRZY2nPUq4127dvE/+qM/4vfccw/fvXs3/9KXvsRPOukk/rKXvUzfY6OVcQpu1sn+5//8n3zbtm08n8/zF73oRfw73/nOsU7Sc9Z+5Vd+hW/atInn83m+ZcsW/iu/8it8165d+ni9Xue//du/zUdGRni5XOa/8Au/wPft23cMU7yx7Rvf+AYHEPl39dVXc87FcvD3vve9fGpqihcKBX7JJZfwRx991LrH7Owsf/3rX88HBgZ4tVrlb3zjG/ny8vIxyM3Gs6TyrdVq/LLLLuMTExM8l8vxE088kb/lLW+JTHzS8o03X9kC4H/3d3+nz+mnT3jiiSf4lVdeyUulEh8fH+fvfOc7ebvdPsq52ZjWq4z37NnDX/ayl/HR0VFeKBT4Kaecwt/1rnfxxcVF6z4bqYwZ55wfPZ4otdRSSy211FJL7chaqrlJLbXUUksttdSOK0vBTWqppZZaaqmldlxZCm5SSy211FJLLbXjylJwk1pqqaWWWmqpHVeWgpvUUksttdRSS+24shTcpJZaaqmlllpqx5Wl4Ca11FJLLbXUUjuuLAU3qaWWWmqppZbacWUpuEkttdSetc3MzOCVr3wlKpUKhoeHj3VyUksttZ9yS8FNaqmlZtmv//qv46qrrlrTNX/5l3+Jffv24f7778ePf/zjI5OwDWpPPPEEGGN6I8HUUkvt2Fv2WCcgtdRSe+7bY489hgsvvBCnnnrqYd+j1Wohn8+vY6pSSy21n1ZLmZvUUkst0S6++GL8zu/8Dt797ndjdHQU09PTeP/736+Pb9++HZ///Ofx93//92CM4dd//dcBAAsLC3jzm9+MiYkJVKtV/NzP/Rx+8IMf6Ove//734/nPfz4+8YlPYMeOHSgWi2u67h/+4R+wfft2DA0N4Vd/9VexvLyszwnDEB/60IdwyimnoFAoYNu2bfjjP/5jffypp57C6173OgwPD2N0dBSvec1r8MQTT8SWwfz8PN7whjdgYmICpVIJp556Kv7u7/4OALBjxw4AwPnnnw/GGC6++GJ93Sc+8QmceeaZKBaLOOOMM/DRj35UH1OMz2c+8xm8+MUvRrFYxNlnn43bb7+9/5eTWmqpeS0FN6mlllpP++QnP4lKpYK7774bH/rQh/BHf/RHuPnmmwEA3/ve93DFFVfgda97Hfbt24e/+qu/AgD88i//Mg4cOICvfOUruPfee3HBBRfgkksuwdzcnL7vrl278PnPfx5f+MIXtFunn+see+wx3Hjjjbjppptw00034fbbb8cHP/hBffzaa6/FBz/4Qbz3ve/FQw89hE9/+tOYmpoCALTbbVx++eUYHBzEN7/5TXzrW9/CwMAArrjiCrRaLW/+1X2+8pWv4OGHH8bHPvYxjI+PAwC++93vAgC+/vWvY9++ffjCF74AAPjUpz6F6667Dn/8x3+Mhx9+GH/yJ3+C9773vfjkJz9p3ftd73oX3vnOd+K+++7Dzp078epXvxqzs7OH/a5SSy01AMdkL/LUUkttw9rVV1/NX/Oa1+jvL3/5y/nP/uzPWue88IUv5O95z3v099e85jX86quv1t+/+c1v8mq1yhuNhnXdySefzP/3//7fnHPO3/e+9/FcLscPHDiw5uvK5TJfWlrSx9/1rnfxiy66iHPO+dLSEi8UCvxv//Zvvfn7h3/4B3766afzMAz1b81mk5dKJf7Vr37Ve82rX/1q/sY3vtF7bPfu3RwAv++++yJp/vSnP2399oEPfIDv3LnTuu6DH/ygPt5ut/kJJ5zA//RP/9T7rNRSS60/SzU3qaWWWk8799xzre+bNm3CgQMHYs//wQ9+gJWVFYyNjVm/1+t1PPbYY/r7iSeeiImJiTVft337dgwODnrT8/DDD6PZbOKSSy6JTduuXbus6wGg0WhYz6D2W7/1W3jta1+L73//+7jssstw1VVX4cUvfnFs/ldXV/HYY4/hTW96E97ylrfo3zudDoaGhqxzd+7cqT9ns1m84AUvwMMPPxx779RSS623peAmtdRS62m5XM76zhhDGIax56+srGDTpk247bbbIsfoUvFKpXJY1yWlp1QqxaZLPePCCy/Epz71qcgxCrSoXXnllXjyySfx5S9/GTfffDMuueQSXHPNNfjzP//z2GcAwN/+7d/ioosuso5lMpnE9KWWWmrP3lJwk1pqqa27XXDBBZiZmUE2m8X27duP+HXUTj31VJRKJdxyyy1485vf7H3GZz/7WUxOTqJarfZ934mJCVx99dW4+uqr8dKXvhTvete78Od//ud6hVe329XnTk1NYfPmzXj88cfxhje8IfG+3/nOd/Cyl70MgGB27r33XrztbW/rO12ppZZa1FJBcWqppbbudumll2Lnzp246qqr8LWvfQ1PPPEEvv3tb+MP/uAPcM8996z7ddSKxSLe85734N3vfjf+/u//Ho899v9v3/5dTg/DOI5/pBSzDAZlUd/Bj7+AP0FZKJMfm7KYDJTJdzIogyJGm0gyCoPNICU5oSwm2WzOcDrqnJ5Tp9NTT33P+7Xfd9e9fbru6/qm9XqtbrcrSUqn03K73YrH41oulzqdTprP5yoWi7perx/eWa1WNRqNdDwetdvtNJlMZBiGJMnj8cjpdGo2m+l2u+nxeEiSarWa6vW6ms2mDoeDttuter2eGo3GL3e3Wi0Nh0Pt93sVCgXd73dls9m/eiuAjxFuAHw6m82m6XSqaDSqTCajQCCgVCqly+Xy3lr6zHO/q1QqKpVKqlarMgxDyWTyPZPjcrm0WCzk8/mUSCRkGIZyuZyez+cfOzkOh0PlclmhUEjRaFR2u12DwUDSjzmZZrOpdrstr9ereDwuScrn8+p0Our1egoGg4rFYur3++/V8Z9M05RpmgqHw1qtVhqPx+9NLAD/xvZ6vV5fXQQA/G/O57P8fr82m40ikchXlwNYCp0bAABgKYQbAABgKXxLAQAAS6FzAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALOU7iFHb0pQfYNkAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def moving_average(data, window_size=5):\n",
    "    return np.convolve(data, np.ones(window_size)/window_size, mode='valid')\n",
    "\n",
    "# Unsmoothed plots with transparency\n",
    "plt.plot(accept_lengths_tree, label='Tree decoding (Raw)', alpha=0.3)\n",
    "plt.plot(accept_lengths, label='List decoding (Raw)', alpha=0.3)\n",
    "\n",
    "# Smoothed plots\n",
    "window_size = 5  # You can adjust this as needed\n",
    "plt.plot(moving_average(accept_lengths_tree, window_size), label='Tree decoding (Smoothed)', color='tab:blue')\n",
    "plt.plot(moving_average(accept_lengths, window_size), label='List decoding (Smoothed)', color='tab:orange')\n",
    "\n",
    "plt.xlabel('Inference step')\n",
    "plt.ylabel('Accept length')\n",
    "plt.legend()\n",
    "\n",
    "print('Avg. accept tree length:', np.mean(accept_lengths_tree))\n",
    "print('Avg. accept list length:', np.mean(accept_lengths))\n",
    "\n",
    "plt.show()\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
